2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Mathematica - интерполяция функции по набору значений.
Сообщение13.05.2011, 15:15 
Итак, есть список точек вида {{x1,y1},{x2,y2},{x3,y3}, итд} Функция ListPlot вполне успешно строит график по этим данным, соединяет точки полиномами. Подскажите, какой командой вольфрам математика надо воспользоваться чтобы найти функцию, соответствующую этому графику(то есть получить выражение вроде f=rx+b(если такая возможность вообще имеется))?

Код:
spisok := {{0, 10}, {30, 18}, {45, 23}, {60, 18}, {90, 13}}
ListPlot[spisok, Joined -> True, InterpolationOrder -> 2]
f[x_] := InterpolatingPolynomial[spisok, x]
Plot[f[x], {x, 0, 90}]


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

 
 
 
 Re: Mathematica - интерполяция функции по набору значений.
Сообщение14.05.2011, 08:59 
Аватара пользователя
Так все-таки чего вы хотите? f=rx+b какое имеет ко всему этому отношение? График-то явно нелинейный на картинке.

 
 
 
 Re: Mathematica - интерполяция функции по набору значений.
Сообщение14.05.2011, 09:34 
Не обижайте Wolfram'а.
По точкам видно (Leierkastenmann), что линейна никуда не годится.
Пробовал кубическую, но и она плохая.
Заострённость графика требует что-то типа астроиды.

 
 
 
 Re: Mathematica - интерполяция функции по набору значений.
Сообщение14.05.2011, 13:35 
естественно линейная только пример) не смог подобрать слова вроде:"получить функцию в аналитическом виде".

 
 
 
 Re: Mathematica - интерполяция функции по набору значений.
Сообщение14.05.2011, 13:55 
Точки на графике математика соединяет с помощью сплайнов или что-то типа того. Вряд ли можно из нее выковырять их явный вид. A f[x] это многочлен, дающий верные значения функции в тех точках, по которым строится.

 
 
 
 Re: Mathematica - интерполяция функции по набору значений.
Сообщение14.05.2011, 14:01 
Многочлен 4-го порядка пройдёт через все 5 точек.
Потом можна посмотреть визуально насколько это хорошо.

 
 
 
 Re: Mathematica - интерполяция функции по набору значений.
Сообщение14.05.2011, 19:13 
Аватара пользователя
VerdenZ7 в сообщении #445738 писал(а):
естественно линейная только пример) не смог подобрать слова вроде:"получить функцию в аналитическом виде".


То есть вам нужна функция, которая пройдет по всем этим точкам и которая будет выглядеть подобно изображению ListPlot[spisok, Joined -> True, InterpolationOrder -> 2]? И откуда такие задачи... :D

 
 
 
 Re: Mathematica - интерполяция функции по набору значений.
Сообщение15.05.2011, 11:08 
y=rx+b это потому что не смог подобрать что-то вроде "найти функцию соответствующую этим точкам".
Цитата:
будет выглядеть подобно изображению


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

проблема во многом решилась добавлением дополнительных значений, но все равно не очень..

 
 
 
 Re: Mathematica - интерполяция функции по набору значений.
Сообщение15.05.2011, 15:58 
Аватара пользователя
Ну тогда может быть так подойдет?
Код:
spisok = {{0, 10}, {30, 18}, {45, 23}, {60, 18}, {90, 13}};
f = Interpolation[spisok, Method -> "Spline", InterpolationOrder -> 2];
Plot[f[x], {x, 0, 90}, Epilog -> Map[Point, spisok]]

 
 
 [ Сообщений: 9 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group