2014 dxdy logo

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

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




 
 Wolfram Mathematica 9: Кусочные функции?
Сообщение03.02.2013, 15:53 
Дана таблица, которая задает функцию. Интерполировать правильно, например в виде полинома, математика её не может - то есть может, но крайне не корректно.



Код:
e := {{0.002, 0.120},
  {0.004, 0.154},
  {0.01, 0.211},
  {0.02, 0.261},
  {0.04, 0.311},
  {0.1, 0.372},
  {0.2, 0.403},
  {0.4, 0.405},
  {1.0, 0.356},
  {2.0, 0.291},
  {4.0, 0.214},
  {10, 0.128},
  {20, 0.0813},
  {40, 0.0493}}

ListPlot[e]
q1 := InterpolatingPolynomial[e, x]
tt = Plot[q1, {x, 0, 40}]




таблица:

Изображение

Выдает:

Изображение

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

 
 
 
 Re: Wolfram Mathematica 9: Кусочные функции?
Сообщение03.02.2013, 16:03 
Предварительно желателно заменить иксы на их логарифмы. Однако при Вашей точности данных даже и это не спасёт -- использование многочлена четырнадцатой степени наверняка окажется неадекватным. Лучше всего такие данные аппроксимировать сплайнами; в Математике они есть, погуглите.

 
 
 
 Re: Wolfram Mathematica 9: Кусочные функции?
Сообщение03.02.2013, 16:20 
(deleted)

 
 
 
 Re: Wolfram Mathematica 9: Кусочные функции?
Сообщение03.02.2013, 16:22 
несколько поигравшись с настройками, подобрал что-то подходящее.

Код:
f := Interpolation[e, InterpolationOrder -> 2, Method -> "Spline"]
tt = Plot[f[x], {x, 0, 40}]
ff := Interpolation[e, InterpolationOrder -> 1, Method -> "Spline"]
ttt = Plot[ff[x], {x, 0, 40}]




спасибо. Мучительно думаю, что выбрать)

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


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