Оптимизация режимов движения судов с использованием MATLAB 5.0

Использование операторов polyfit и polyval для аппроксимации кривой

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

Исходные данные.
 x |0 |400 |800 |1200 |1600 |2000 |2400 |2800 |3200 | |f(x) |0 |80 |100 |110
|120 |180 |210 |230 |260 | |Программа.
%Исходные данные
x=[0 400 800 1200 1600 2000 2400 2800 3200];
f=[0 80 100 110 120 180 210 230 260];
%a - коэффициенты полинома
%S - квадратичная погрешность
[a,S]=polyfit(x,f,3)
z=polyval(a,x)
%Построение графиков
plot(x,f,x,z),grid

Результат.
a =

    0.0000   -0.0000    0.1223   13.5354


S =

        R: [4x4 double]
       df: 5
    normr: 43.1607


z =

  Columns 1 through 7

   13.5354   57.1717   91.9986  120.6926  145.9307  170.3896  196.7460

  Columns 8 through 9

  227.6768  265.8586

   Командой plot  произвели  построение  исходной  функции  (синий  цвет)  и
функции  аппроксимирующей  её  (зелёный  цвет).  Поскольку  велико  значение
погрешности  normr=43.1607  и  недостаточно  аппроксимирование,  то  следует
повысить степень полинома. Пусть вместо 3 будет 6.

Программа.
%Исходные данные
x=[0 400 800 1200 1600 2000 2400 2800 3200];
f=[0 80 100 110 120 180 210 230 260];
%a - коэффициенты полинома
%S - квадратичная погрешность
[a,S]=polyfit(x,f,6)
z=polyval(a,x)
%Построение графиков
plot(x,f,x,z),grid

Результат.
a =

    0.0000   -0.0000    0.0000   -0.0000   -0.0002    0.2770    0.0140


S =

        R: [7x7 double]
       df: 2
    normr: 12.4672


z =

  Columns 1 through 7

    0.0140   79.7016  101.6970  105.3007  127.5058  172.6900  214.3077

  Columns 8 through 9

  228.5828  260.2005

Вывод.
    В  результате  работы  видно,  что  при  увеличении   степени   полинома
уменьшается  погрешность  и  аппроксимированная  кривая  наиболее  близка  к
исходной. В случае когда степень полинома равна количеству  исходных  точек,
получаем: normr=0 и полное соответствие кривых в исходных точках.