Использование
операторов
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
и полное соответствие
кривых в исходных
точках.
Оптимальное
распределение
двух ресурсов
Цель
работы.
Получение
максимального
значения прибыли
при перевозке
двух различных
грузов.
Исходные
данные.
x | 0 | 400 | 800 | 1200 | 1600 | 2000 | 2400 | 2800 | 3200 |
f1(x) | 0 | 80 | 100 | 110 | 120 | 180 | 210 | 230 | 260 |
f2(x) | 0 | 60 | 90 | 110 | 130 | 190 | 230 | 250 |
f1(x)
доход от перевозки
груза первого
рода;
f2(x)
доход от перевозки
груза второго
рода;
x
количество
груза.
Программа.
%Исходные
данные
x=[0
400 800 1200 1600 2000 2400 2800 3200];
f1=[0
80 100 110 120 180 210 230 260];
f2=[0
60 90 110 130 150 190 230 250];
plot(x,f1,x,f2),grid
%Решение
F12=[];
for
xR=1:9;
I=1:xR;
L12=f1(I)+f2(xR-I+1);
[Lopt,I]=max(L12);
x1=I*400-400;
x2=(xR-I)*400;
Pacn=[Lopt;x1;x2;x1+x2];
F12=[F12
Pacn];
end
F12
pause
plot(x,F12(1,:)),grid
Результат.
F12
=
Columns
1 through 6
0
80 140 170 190 210
0
400 400 400 400 400
0
0 400 800 1200 1600
0 400
800 1200 1600 2000
Columns
7 through 9
240
270 310
2000
400 400
400
2400 2800
2400 2800 3200
В
результате
получаем матрицу,
в которой:
1 строка
суммарный
доход от перевозки;
2 строка
количество
первого груза;
3 строка
количество
второго груза;
4 строка
суммарное
количество
грузов.
Вывод.
Таким образом
получена оптимальная
зависимость
распределения
груза с наибольшим
доходом от
перевозки. Для
наглядности
по полученным
значениям
построен график.
Оптимальное
распределение
шести ресурсов
Цель
работы.
Получение
максимального
значения прибыли
при перевозке
шести различных
грузов.
Исходные
данные.
x | 0 | 400 | 800 | 1200 | 1600 | 2000 | 2400 | 2800 | 3200 | ||||||
f1(x) | 0 | 80 | 100 | 110 | 120 | 180 | 210 | 230 | 260 | ||||||
f2(x) | 0 | 60 | 90 | 110 | 130 | 150 | 190 | 230 | 250 | ||||||
f3(x) | 0 | 30 | 40 | 70 | 110 | 180 | 200 | 240 | 250 | ||||||
f4(x) | 0 | 40 | 60 | 80 | 130 | 160 | 180 | 210 | 240 | ||||||
f5(x) | 0 | 50 | 70 | 90 | 110 | 150 | 170 | 200 | 220 | ||||||
f6(x) | 0 | 70 | 80 | 110 | 140 | 160 | 200 | 250 | 270
Обсуждение:
Название реферата: Оптимизация режимов движения судов с использованием MATLAB 5.0
Вам также могут понравиться эти работы:
|