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

Посмотреть архив целиком

Использование операторов 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 и полное соответствие кривых в исходных точках.


Случайные файлы

Файл
23977.rtf
79350.rtf
65542.rtf
2951-1.rtf
121079.rtf




Чтобы не видеть здесь видео-рекламу достаточно стать зарегистрированным пользователем.
Чтобы не видеть никакую рекламу на сайте, нужно стать VIP-пользователем.
Это можно сделать совершенно бесплатно. Читайте подробности тут.