Интегральные изменения переменных индексов - PullRequest
0 голосов
/ 04 марта 2019

Я давно отсутствовал в Mathematica и пытаюсь починить некоторые старые ноутбуки из v4, которые больше не работают под v11.Я тоже немного ржавый.

Я пытаюсь использовать функциональную минимизацию для подгонки полинома переменной степени к произвольной функции (F), учитывая начальное предположение (ao) и интересующую область (d).Обратите внимание, что, хотя F произвольно, его природа такова, что интеграл от произведения F и полинома (или F ^ 2) всегда можно оценить алгебраически.

Для примера я буду использоватьследующие входные данные:

ao = { 1, 2, 3, 4 }
d = { -1, 1 }
F = Sin[x]

Для этого я создаю массив «индексированных» переменных

polyCoeff = Array[a,Length[a],0]

Результат: polycoeff = {a [0], a [1], a [2], a [3]}

Затем я создаю сам многочлен, используя следующее

genPoly[{},x_] := 0
genPoly[a_List,x_] := First[a] + x genPoly[Rest[a],x]
poly = genPoly[polyCoeff,x]

Результат: poly = a [0] + x (a [1] + x (a [2] + xa [3]))

Затем я определяю свою целевую функцию как интеграл от квадрата ошибки разности междуэто поли и функция, которую я пытаюсь подогнать:

Q = Integrate[ (poly - F[x])^2, {x, d[[1]],d[[2]]} ]

результат: Q = 0.545351 - 2. a [0.] ^ ​​2 + 0.66667 a [1.] ^ 2 + .....

И здесь все рушится.Поли выглядит так, как я и ожидал: многочлен от x с коэффициентами, похожими на a [0], a [1], a [2], ... Но, Q не совсем то, что я ожидал.Я ожидал и получил новый многочлен.Но не коэффициенты содержали a [0.], A [1.], A [2.], ...

Следующим шагом является создание первоначального предположения для FindMinimum

init = Transpose[{polyCoeff,ao}]

Результат: {{a [0], 1}, {a [1], 2}, {a [3], 3}, {a [4], 4}}

Это выглядит нормально.

Но когда я вызываю FindMinimum, я получаю ошибку, потому что коэффициенты передаются в цель (a [0.], A [1.], ...)не совпадают с теми, которые были переданы в первоначальном предположении (a [0], a [1], ...).

S = FindMinimum[Q,init]

Так что я думаю мой вопрос, как мне сохранитьИнтегрировать от изменения аргументов до моих коэффициентов?Но я открыт и для других подходов.Имейте в виду, что это «устаревшая» работа, которую я действительно не хочу полностью обновлять.

Большое спасибо за любую помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...