Помощь - Поиск - Пользователи - Календарь
Полная версия: Мат обработка данных
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Dark_san
Вот этот ужас дали...
0.1 0.0996
0.2 0.1966
0.3 0.2887
0.4 0.3742
0.5 0.4518
0.6 0.5210
0.7 0.5818
0.8 0.6343
0.9 0.6792
1.0 0.7173
Входные данные.
П.с. Кто то может обьяснить, что от меня хотят ?smile.gif и примерный алгоритм работы... со всем этим.
Нужно построить Квадратическую зависимость.
Ozzя
Цитата
Кто то может обьяснить, что от меня хотят ?

Да. Может. Преподаватель, давший Вам это задание. Ну, или загляните в его лекции.
Lapp
Цитата(Dark_san @ 5.05.2010 2:11) *
П.с. Кто то может обьяснить, что от меня хотят ?smile.gif и примерный алгоритм работы... со всем этим.

Не я.
Я лекции по телепатии всегда прогуливал, у меня по ней тройка с минусом..
TarasBer
Может надо приблизить этот набор точек полиномом 2 степени?
Dark_san
Цитата(Ozzя @ 5.05.2010 8:17) *

Да. Может. Преподаватель, давший Вам это задание. Ну, или загляните в его лекции.

Если бы было все так просто, я бы сама прочитала и написала.

Нужно построить квадратическую зависимость через поиск эмпирической формулы в форме :
y=ax^2+bx+c, где а b c -неизвестные
Нашла в гугле несколько формул
Изображение
и формула для контроля расчета
Изображение
Lapp
Цитата(Dark_san @ 5.05.2010 11:59) *
Нашла в гугле несколько формул

мммм... и в каком месте они квадратические? blink.gif
TarasBer
Цитата(Lapp @ 5.05.2010 12:05) *

мммм... и в каком месте они квадратические? blink.gif

Это стандартная матрица для интерполяции набора из n точек полиномом m степени (для m=2) по методу наименьших квадратов. Выглядит так:
a[i, j] = sum(x[k]^(i+j); k=0 .. n-1)
b[j] = sum(y[k]*x[k]^j; k=0 .. n-1)
i, j = 0 .. m
Так что моё предположение оказалось верным.
Lapp
Цитата(TarasBer @ 5.05.2010 12:15) *
Так что моё предположение оказалось верным.

Вот ты и отдувайся )). Тебя потом пригласят на праздник вызывания дождя, а в конце его - съедят! ))
TarasBer
Ну вот отдуюсь - надо построить матрицу A размером m+1 на m+1 (в данном случае - 3 на 3), и столбец B высоты m+1 (в данном случае 3), построить их по вот этим формулам, потом решить систему AX=B (где-то тут наверняка были примеры решения системы линейных уравнений), получить в качестве X коэффициенты квадратичного полинома. Вот и всё.
Lapp
Цитата(TarasBer @ 5.05.2010 12:27) *
Вот и всё.
Типо, думаешь, отдулся?
no1.gif
Romtek
По английски это называется Curve Fitting.
О том как приближать данные к параболе, можно прочесть на странице Fitting a Parabola to Your Data. Хоть и на английском, но достаточно просто объясняется.

В общем, чтобы решить систему уравнений из трёх неизвестных, достаточно трёх уравнений. Подставляешь 3 пары чисел в квадратное уравнение и решаешь систему уравнений методами Крамера или Гаусса.

Если я не ошибаюсь, такое количество пар точек дано для того, чтобы минимизировать ошибку приближённого вычисления. Только каким образом это делать программно - я не знаю. Нужно иметь порядок действий.
TarasBer
Цитата(Romtek @ 5.05.2010 17:02) *
http://www.dsrlab.com/dw/Gun/parabolicfit.html]Fitting a Parabola to Your Data


То не то, там только для 3 точек.

Цитата


В общем, чтобы решить систему уравнений из трёх неизвестных, достаточно трёх уравнений.

Спасибо, кэп.
Да только когда точек больше трёх, то принцип построения системы меняется.
Цитата


Если я не ошибаюсь, такое количество пар точек дано для того, чтобы минимизировать ошибку приближённого вычисления.


Ну, чем больше - тем лучше.

Цитата


Только каким образом это делать программно - я не знаю. Нужно иметь порядок действий.


А как это делать, я уже написал.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.