Аппроксимирующая функция для имеющейся кривой

Форум для обсуждения вопросов математики

Модератор: Admin

RomanB
Сообщения: 13
Зарегистрирован: Чт мар 27, 2014 3:25 pm

Аппроксимирующая функция для имеющейся кривой

Сообщение RomanB » Пн июл 28, 2014 3:04 am

Доброго времени суток!На картинке изображена кривая линия.Хочу аппроксимировать ее некой функцией по МНК. Подскажите,пожалуйста,какой функцией в данном случае можно воспользоваться?Заранее спасибо!
Изображение

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

Re: Аппроксимирующая функция для имеющейся кривой

Сообщение Markiyan Hirnyk » Пн июл 28, 2014 7:02 am

RomanB писал(а):Доброго времени суток!На картинке изображена кривая линия.Хочу аппроксимировать ее некой функцией по МНК. Подскажите,пожалуйста,какой функцией в данном случае можно воспользоваться?Заранее спасибо!
Изображение
По картинке можно предложить только то, что модельная функция должна быть нечетной. Для подбора формулы нужны числа, т.е. координаты точек. Подбор может оказаться непростым, т. к. производная изображенной функции в нуле выглядит бесконечной.

Kitonum
Сообщения: 2080
Зарегистрирован: Ср дек 31, 2008 1:55 pm
Откуда: г. Пенза

Сообщение Kitonum » Вт июл 29, 2014 7:24 am

Ваша кривая хорошо аппроксимируется графиком y=714.7*x^(1/7). Получил это так:

1) Распечатал Ваш график и по нему, используя линейку, нашёл примерные координаты 4 точек (0.25, 588), (0.5, 647), (0.75, 682), (1, 718)

2) В пакете Maple с помощью нелинейного МНК нашёл нужную функцию.

3) Округлил полученный результат.

Вот код и график, на котором синими ромбиками изображены точки, взятые с Вашего графика:

restart;
X := Vector([0, 0.25, 0.5, 0.75, 1.0]):
Y := Vector([0, 588, 647, 682, 718]):
Statistics[NonlinearFit](a*x^(1/n), X, Y, x);
A:=plot(convert(X,list),convert(Y,list), style=point, color=blue, symbolsize=15):
B:=plot(714.7*surd(x,7), x=-1..1):
plots[display](A,B);

Изображение