Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Вопрос про сумму 4 числовых рядов

Qimer Профи (551), на голосовании 9 лет назад
есть 4 числовых ряда с N элементами каждый.
Пример:




Ряд1
57
-25
-74
-47
-73
16
41


Ряд2
-43
-81
90
-79
-73
32
-29


Ряд3
-71
-9
76
-50
34
52
-19


Ряд4
54
98
69
70
93
-31
14


Необходимо найти такие коэффициенты, на которые надо умножить каждый ряд, чтобы элементы числового ряда, получившегося в результате суммы этих 4х числовых рядов, имели наименьшее отклонение от 0. Коэффициенты должны быть только положительные и не равны 0.

(Basic, Pascal, C++)
Дополнен 9 лет назад
Ах да, забыл. Важное дополнение: любой из 4х коэффициентов принимаем за 1, а остальные подбираем
Голосование за лучший ответ
Globe Просветленный (24842) 9 лет назад
Запросто: K1=K2=K3=K4 = 1.0e-100 / [4 max(|a_i|, |b_i|, |c_i|, |d_i|)]
Для любого элемента взвешенной суммы получим:
| K1 * a_i + K2 * b_i + K3 * c_i + K4 * d_i | <
< 1.0e-100 / [4 max(a_i, b_i, c_i, d_i)] * 4 max(|a_i|, |b_i|, |c_i|, |d_i|) <
< 1.0e-100
По-моему, достаточно мало отличается от нуля.
QimerПрофи (551) 9 лет назад
А по-моему фигня какая-то, не?)
Globe Просветленный (24842) Конечно, фигня 8-) А вот если принять во внимание условие, что один из коэффициентов должен быть равен 1, то получится задача нелинейного программирования, которую, видимо, придется решить методом неопределенных множителей Лагранжа. Тут кое-какие выкладки, описывающие всю эту математику: http : // это-очередной-унылый-домен-из-кириллической-зоны. рф / science / z141015-00.xml В принципе, несложно, но много возни.
Похожие вопросы