Как я могу сделать многочлен все-в-одном из многочлена?

Я не знаком с экспертом по математике. поэтому я не знаю с чего начать.

У меня есть такая статья. Я просто следую этому описанию статьи. Но это не легко для меня.

Но я не уверен, как сделать только одно полиномиальное уравнение (или что-то подобное) из 4 полиномиальных уравнений. Разве это может быть возможным способом?

Если да, не могли бы вы помочь мне, как получить полином (или что-то вроде уравнения)? Если нет, дайте мне знать причину почему?

ОБНОВИТЬ

I'd like to try as following 


clear all ;
clc

ab = (H' * H)\H' * y;
y2 = H*ab;

Finally I can get some numbers like this.



So, is this meaning?



As you can see the red curve line, something wrong.
What did I miss anythings?

1 ответ

Решение

Вся статья гласит: "Вы можете объединить несколько наборов данных в один, чтобы получить один многочлен".

Вы также можете пойти в другом направлении: разделите ваш набор данных на части и получите столько отдельных, сколько пожелаете. (Это называется n-кратной проверкой.)

Вы начинаете с набора из n точек (х, у). (Сохраняйте это простым, имея только одну независимую переменную x и одну зависимую переменную y.)

Ваш первый шаг должен состоять в том, чтобы построить данные, посмотреть на них и подумать о том, какие отношения между ними хорошо объяснят.

Ваш следующий шаг должен принять некоторую форму для отношений между ними. Людям нравятся многочлены, потому что их легко понять и с ними работать, но возможны и другие, более сложные отношения.

Один полином может быть:

y = c0 + c1*x + c2*x^2 + c3*x^3

Это ваши общие отношения между зависимой переменной y и независимой переменной x.

У вас есть n точек (х, у). Ваша функция не может пройти через каждую точку. В приведенном мной примере есть только четыре коэффициента. Как вы рассчитываете коэффициенты для n >> 4?

Вот где вступают матриц. У вас есть n уравнений:

y(1) = c0 + c1*x(1) + c2*x(1)^2 + c3*x(1)^3
....
y(n) = c0 + c1*x(n) + c2*x(n)^2 + c3*x(n)^3

Вы можете написать это в виде матрицы:

у = Н * с

где штрих обозначает "транспонировать".

Предварительно умножьте обе стороны на транспонирование (X):

транспонировать (X) * y = транспонировать (H) * H * c

Выполните стандартную инверсию матрицы или разложение LU, чтобы найти неизвестный вектор коэффициентов c. Эти конкретные коэффициенты минимизируют сумму квадратов разностей между функцией, оцененной в каждой точке x, и вашим фактическим значением y.

Обновить:

Я не знаю, откуда эта фиксация с этими полиномами.

Твой у вектор? Неправильно. Ваша матрица H? Опять не так.

Если вы должны настаивать на использовании этих полиномов, вот что я бы порекомендовал: у вас есть диапазон значений x на вашем графике. Допустим, у вас есть 100 значений x, равномерно распределенных между 0 и вашим максимальным значением. Это те значения, которые нужно включить в вашу матрицу H.

Используйте полиномы, чтобы синтезировать наборы значений y, по одному на каждый полином.

Объедините их все в одну большую задачу и решите для нового набора коэффициентов. Если вы хотите полином 3-го порядка, у вас будет только четыре коэффициента и одно уравнение. Он будет представлять наилучшее приближение наименьших квадратов всех синтезированных данных, которые вы создали с помощью четырех полиномов.

Другие вопросы по тегам