РефератыОстальные рефератыраработа по дисциплине : «Вычислительные задачи в системах управления»

работа по дисциплине : «Вычислительные задачи в системах управления»

Московский Государственный Университет Путей Сообщения


Курсовая работа


по дисциплине:


«Вычислительные задачи в системах управления»


на тему


«Решение системы обыкновенных дифференциальных уравнений»


Москва 2005 г.


ПОЯСНИТЕЛЬНАЯ ЗАПИСКА


СОДЕРЖАНИЕ


· Назначение и характеристика программы


· исходные, нормативно-справочные и промежуточные данные


· Математическое описание способа решения


· Алгоритм решения


· Текст программы


· Результат работы программы


· График функции


· Заключение


· Список использованной литературы


НАЗНАЧЕНИЕ И ХАРАКТЕРИСТИКА ПРОГРАММЫ


Программа предназначена для решения системы обыкновенных дифференциальных уравнений Методом проб и коррекции
:


y1’=-3y1+48y2-28y3


y2’=-4y1+40y2-22y3


y3’=-6y1+57y2-31y3 при а=0, b=3, y1
(a)=1, y2
(a)=1, y3
(a)=1


Программа решает систему методом прогноза и коррекции (исправленный метод Эйлера). Точность решения ε=0.0001. Способ выбора шага – переменный шаг, выбираемый по верхней оценке остаточного члена. Характер системы – линейная автономная.


Таблица описания переменных









































Обозначение в программе


Описание


k


Счетчик шагов интегрирования


Y1,y2.y3


Неизвестные системы


h


Шаг интегрирования


sumR


Методическая погрешность(суммируется на всем отрезке)


R


Погрешность на одном шаге


k1,k2


Приращение функции y1
(к2 более точное чем к1)


C1,c2


Приращение функции y2
(с2 более точное чем с1)


Z1,z2


Приращение функции y3
(z2 более точное чем z1)


dmax


Максимальная 3-я производная


d3y1


Третья производная функции y1


d3y2


Третья производная функции y2


x


Переменная х








АЛГОРИТМ РЕШЕНИЯ ЗАДАЧИ


IV
ТЕКСТ ПРОГРАММЫ


{Программа для решения систем диф.уравнений методом проб и коррекции}


{$n+}


program metod_prob_i_korrekcii;


uses


crt;


var


y1,y2,y3 : extended;


k1,c1,z1 : extended ;


k2,c2,z2 : extended;


k3,c3,z3 : extended;


k : integer; {номера шагов интегрирования}


h : real; {шаг интегрирования}


R : real; {погрешность на к-ом шаге}


sumR : real; {суммарная погрешность}


x : real; {отрезок интегрирования}


d3y1,d3y2,d3y3,dmax : extended; { 3-я производная }


print : integer;


f : text;


begin


textbackground(white);


clrscr;


y1:=1; { y1 в начале отрезка интегрирования }


y2:=1;


y3:=1;


assign(f,'c:f.txt');


rewrite(f); {результаты вычислений запишутся в текстовый файл}


repeat


d3y1:=-51*y1+552*y2-316*y3;<

/p>

d3y2:=-52*y1+490*y2-274*y3;


d3y3:=-78*y1+723*y2-403*y3;


if (d3y1>d3y2)and(d3y1>d3y3)


then dmax:=d3y1


else


if (d3y2>d3y1)and(d3y2>d3y3)


then dmax:=d3y2


else dmax:=d3y3;


h:=exp((1/3)*ln(12*0.0001/dmax));


textcolor(blue);


{ writeln(k,'-ый шаг интегрирования равен ',h:1:9);}


k1:=h*(-3*y1+48*y2-28*y3); {для y1}


c1:=h*(-4*y1+40*y2-22*y3); {для y2}


z1:=h*(-6*y1+57*y2-31*y3); {для y3}


k2:=h*(-3*(y1+k1)+48*(y2+c1)-28*(y3+z1)); {для y1}


c2:=h*(-4*(y1+k1)+40*(y2+c1)-22*(y3+z1)); {для y2}


z2:=h*(-6*(y1+k1)+57*(y2+c1)-31*(y3+z1)); {для y3}


y1:=y1+((k1+k2)/2);


y2:=y2+(c1+c2)/2;


y3:=y3+(z1+z2)/2;


R:=(h*h*h)*dmax/12; {погрешность метода на одном шаге инт-ния}


textcolor(black);


sumR:=R+sumR; {суммарная погрешность}


x:=x+h;


k:=k+1;


print:=k+100;


if ((print mod 100)=0)or(k=1) {значения печатаются с шагом 80}


then


begin


{печать в текстовый файл}


writeln(f,'Y1= ',y1:0:3,' Y2=',y2:0:3,' Y3=',y3:0:3);


writeln(f,k,'-ый шаг интегрирования равен ',h:1:9);


writeln(f,' погрешность метода на ',k,'-ом шаге R=',R:1:4);


writeln(f,' X= ',x:1:3);


{печать в паскале}


writeln('Y1= ',y1:0:3,' Y2=',y2:0:3,' Y3=',y3:0:3);


writeln(k,'-ый шаг интегрирования равен ',h:1:9);


writeln(' погрешность метода на ',k,'-ом шаге R=',R:1:4);


writeln(' X= ',x:1:3);


end;


until x>=3; {конец отрезка интегрирования}


close(f);


readkey;


end.


Результат работы программы


Y1= 1.299 Y2=1.246 Y3=1.352


1-ый шаг интегрирования равен 0.017052522 погрешность метода на 1-ом шаге R=0.0001 X= 0.017


Y1= 124.121 Y2=110.241 Y3=161.694


100-ый шаг интегрирования равен 0.006313207 погрешность метода на 100-ом шаге R=0.0001 X= 0.996


Y1= 553.260 Y2=508.101 Y3=752.419


200-ый шаг интегрирования равен 0.003867977 погрешность метода на 200-ом шаге R=0.0001 X= 1.484


Y1= 1466.039 Y2=1372.205 Y3=2039.611


300-ый шаг интегрирования равен 0.002788804 погрешность метода на 300-ом шаге R=0.0001 X= 1.811


Y1= 3040.150 Y2=2880.244 Y3=4289.805


400-ый шаг интегрирования равен 0.002180586 погрешность метода на 400-ом шаге R=0.0001 X= 2.057


Y1= 5453.307 Y2=5209.931 Y3=7769.572


500-ый шаг интегрирования равен 0.001790200 погрешность метода на 500-ом шаге R=0.0001 X= 2.254


Y1= 8883.238 Y2=8538.993 Y3=12745.503


600-ый шаг интегрирования равен 0.001518382 погрешность метода на 600-ом шаге R=0.0001 X= 2.418


Y1= 13507.680 Y2=13045.166 Y3=19484.200


700-ый шаг интегрирования равен 0.001318231 погрешность метода на 700-ом шаге R=0.0001 X= 2.559


Y1= 19504.375 Y2=18906.192 Y3=28252.276


800-ый шаг интегрирования равен 0.001164704 погрешность метода на 800-ом шаге R=0.0001 X= 2.683


Y1= 27051.068 Y2=26299.816 Y3=39316.349


900-ый шаг интегрирования равен 0.001043208 погрешность метода на 900-ом шаге R=0.0001 X= 2.793


Y1= 36325.510 Y2=35403.788 Y3=52943.043


1000-ый шаг интегрирования равен 0.000944666 погрешность метода на 1000-ом шаге R=0.0001 X= 2.892


Y1= 47505.454 Y2=46395.860 Y3=69398.988


1100-ый шаг интегрирования равен 0.000863134 погрешность метода на 1100-ом шаге R=0.0001 X= 2.983


ЗАКЛЮЧЕНИЕ


Данная программа написании на алгоритмическом языке Turbo-Pascal.


И работает следующим образом:


Организуется цикл по переменной «х» на интервале от «а» до «в» , шаг интегрирования переменный. Результаты расчетов печатаются в текстовый файл с шагом равным 100.


Далее по полученным результатам строится график в Exel.


СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ


1. Максимов В.М. «Решение на ЭВМ систем обыкновенных дифференциальных уравнений. Методические указания к курсовой работе.» Москва, 1995 г.


2. Максимов В.М. лекции по дисциплине «Вычислительные задачи в системах управления», 2005 г.

Сохранить в соц. сетях:
Обсуждение:
comments powered by Disqus

Название реферата: работа по дисциплине : «Вычислительные задачи в системах управления»

Слов:920
Символов:9752
Размер:19.05 Кб.