Как правильно аппроксимировать?

Форум пользователей пакета Maple

Модератор: Admin

molekyla
Сообщения: 2
Зарегистрирован: Пн апр 22, 2013 6:36 pm

Как правильно аппроксимировать?

Сообщение molekyla » Пн апр 22, 2013 6:49 pm

Доброго времени суток!
Вот в чем проблема. Есть набор точек с абсциссами xdatae и ординатами ydatae. Нужно аппроксимировать эти точки тригонометрической функцией. Я использую вот такой подход.

Код: Выделить всё

> xdatae := [.6711864407, 2.876101695, 4.282372881, 6.70542373, 8.14525424, 10.43406780, 12.58864407, 14.87745763, 16.28372881, 18.94169492, 21.49898305, 22.68711864];
> ydatae := [4.013898305, 15.38084746, 22.21050847, 23.72745763, 18.35440678, 8.91033898, -3.312372881, -14.72644068, -21.94203390, -23.64355932, -17.79389831, -7.55118644]

> with(Statistics); e := NonlinearFit(a*sin(b*v), xdatae, ydatae, v)

> with(plots); x := pointplot(xdatae, ydatae); y := plot(e);
> display({x, y});



В результате получется

Код: Выделить всё

e := -6.91276172085455*sin(1.47731061479592*v)

Но это и близко не аппроксимирует табличные значения, даже на глаз видно. Это глюк Maple или я не понимаю как работают функции в нем?
ЗЫ: график прилагаю
Изображение

Markiyan Hirnyk
Сообщения: 1335
Зарегистрирован: Вс дек 04, 2011 11:07 pm

Поправки

Сообщение Markiyan Hirnyk » Пн апр 22, 2013 7:46 pm

restart; xdatae := [.6711864407, 2.876101695, 4.282372881, 6.70542373, 8.14525424, 10.43406780, 12.58864407, 14.87745763, 16.28372881, 18.94169492, 21.49898305, 22.68711864]; ydatae := [4.013898305, 15.38084746, 22.21050847, 23.72745763, 18.35440678, 8.91033898, -3.312372881, -14.72644068, -21.94203390, -23.64355932, -17.79389831, -7.55118644];
with(Statistics):
e := NonlinearFit(a*sin(b*v), xdatae, ydatae, v, parameterranges = [a = 1 .. 30, b = 0 .. .5], output = [leastsquaresfunction]);
with(plots): x := pointplot(xdatae, ydatae); y := plot(e, v = 0 .. 7*Pi);
display([x, y])

[23.7831848093140sin(0.2599394331378861 v)]

PLOT(`...`)
PLOT(`...`)

Изображение

molekyla
Сообщения: 2
Зарегистрирован: Пн апр 22, 2013 6:36 pm

Сообщение molekyla » Пн апр 22, 2013 7:56 pm

О как. Спасибо большое. Надо бы изучить тонкости Maple.

Markiyan Hirnyk
Сообщения: 1335
Зарегистрирован: Вс дек 04, 2011 11:07 pm

Справка

Сообщение Markiyan Hirnyk » Пн апр 22, 2013 8:01 pm

molekyla писал(а):О как. Спасибо большое. Надо бы изучить тонкости Maple.

Это описано в справке ?NonLinearFit , но примера там нет. Можно также задавать начальные значения параметров (Такие примеры в справке приведены.).

sabbath
Сообщения: 148
Зарегистрирован: Сб апр 03, 2010 12:40 pm
Откуда: Днепропетровск

Re: Справка

Сообщение sabbath » Вт апр 23, 2013 12:15 am

Markiyan Hirnyk писал(а):
molekyla писал(а):О как. Спасибо большое. Надо бы изучить тонкости Maple.

Это описано в справке ?NonLinearFit , но примера там нет. Можно также задавать начальные значения параметров (Такие примеры в справке приведены.).
Очень интересно! чувствую себя неучем! я никогда не слышал о подобных возможностях мапла... для аппроксимации кривой использовал метод наименьших квадратов...