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

Оптимизация режимов движения судов с использованием 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 и полное соответствие кривых в исходных точках.