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

 

Министерство образования и науки РФ

Федеральное бюджетное государственное образовательное учреждение

высшего профессионального образования

«Тульский государственный университет»

Институт высокоточных систем им. В.П. Грязева

Факультет «Системы автоматического управления»

Кафедра «Системы автоматического управления»







Реферат по дисциплине

" Программирование и основы алгоритмизации"



Разработал студент гр.130101

Алясов А. А.

Консультировал: Илюхин А. С.








Тула 2011 г.


Содержание


Задание на курсовую работу

Система, приведенная к виду Коши

Исходные данные

Описание метода

Описание алгоритма

Описание исходных данных программы

Текст программы. Текст файла с исходными данными

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

График зависимости x(t)

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


Задание на курсовую работу


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


=

=F


Разработать программу в системе программирования Паскаль АВС, выполняющую следующие действия.

.Чтение исходных данных из внешнего файла.

.Вывод исходных данных и результатов на дисплей и во внешний файл.

Программа должна состоять из главной программы, Главная программа должна выполнять обращение к процедурам вычисления функций «правых частей» и процедуры, реализующей метод Ейлера.


Система, приведенная к виду Коши


=x3

=


Исходные данные


Начальные условия - нулевые.

K1 =K2=K3=K22=K23=F=1.0

tk=5.


Описание метода


Уравнения, содержащие производные от функции, возникают при решении многих научно-технических задач, причем существует большое разнообразие классов подобных уравнений. Для решения некоторых из них могут быть использованы аналитические методы, рассматриваемые в курсах математики, однако в большинстве случаев приходится применять численные методы.

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

Пусть задано дифференциальное уравнение первого порядка с начальным условием (задача Коши)


dy/dx=F(x,y),(1)

У(х0) = Уо(2)


где F(x,y) - заданная функция двух переменных х и у, х0, у0 - известные числа. Требуется определить функцию у?у(х) при x?х0. Уравнение (1) можно рассматривать как задание кривой через ее производную в координатной плоскости x, у, поскольку известно как вычислить производную в каждой точке этой кривой через ее координаты. В общем случае уравнению (1) удовлетворяет целое семейство кривых; начальное условие (2) позволяет выбрать из этого семейства одну определенную кривую, которая проходит через заданную точку х0, y0.

Для численного решения (1), (2) заменим область непрерывного изменения аргумента x дискретным множеством точек, т.е. введем сетку. Положим, что величина х изменяется от значения х=х0 до значения х=Ь. Тогда, рассматривая равномерную сетку, получаем узловые точки x0, x1,... xk,...b, находящиеся на расстоянии h друг от друга, т.е.


xk+1-xk=h, k=0,1...,(3)


где h - шаг сетки. Соответствующие значения функции будем обозначать yk, т.е.


yk=y*(xk)


Здесь у* (х) - функция, которая является приближенным решением (1), (2). Для получения численного решения, дифференциальное уравнение (1) заменяется уравнениями относительно значений функций у*(х) в узловых точках. Эти уравнения называются разностными. Простейшее разностное уравнение для (1) имеет вид


(yk+1-yk)/h=F(xk, yk) k=0,1,..., (4)


Уравнение (4) следует из (I), если производную dy/dx приближенно представить через значения функции у(х) в соседних узлах.

Соотношения (2. 12.4) можно записать в виде


yk+1=yk+h*F(xk, yk) (5)


Тогда, учитывая (2), с помощью формулы (5) можно последовательно определить значения y1, y2,..... Этот метод приближенного решения (1), (2) называется методом Эйлера. Геометрическая интерпретация этой схемы дана на. рис.1, где изображено поле интегральных кривых. Использование только первого члена формулы Тейлора означает движение не по интегральной кривой, а по касательной к ней. На каждом шаге мы заново находим касательную; следовательно, траектория движения будет ломаной линией. Из-за этого метод Эйлера иногда называют методом ломаных.


Рис.1


Доказывается, что если шаг сетки h стремится к нулю, то приближенное решение, определяемое (5), стремится к точному решению (1), (2), т.е. имеется факт сходимости приближенного решения к точному при h?0. Однако в условиях реальных вычислений на компьютере при конечном шаге целесообразно знать насколько полученное приближенное решение близко к точному.

программирование паскаль файл язык

3. Описание исходных данных программы


ОбозначенияТипПрограммные обозначенияПоясненияt0realt0начальные условияx0массив realx0[ ]хмассив realx[ ]вычисляемые значенияhrealhвыбранный шагfмассив realf[ ]функции от хk1 k2 k3 k22 k23realk1 k2 k3 k22 k23исходные данныеFrealfstrealtпромежуточное значение ttkrealtkконечное значение tпорядокintegerjmколичество уравнений-integernсчётчик, используется для вывода результата-integerjсчётчик уравнений-stringlиспользуются для работы с файлами-textd

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


program kursach;jm=3;mas=array[1..3]of real;k1,k2,k3,k22,k23,fs:real;,t,tk,h:real;,n:integer;,x0,x:mas;:text;:string;rp(t:real;var x0,f:mas);

{процедура вычисления правых частей}

begin[1]:= x[3];[2]:= (fs-k23*x[2])/k22;[3]:= (x[2]-x[3]*k2-x[1]*k3)/k1;;eu(var t,t0,h:real;var x0:mas;var x:mas);

{процедура, выполняющая действия по методу Ейлера}

var j:integer;(t,x0,f);j:=1 to 3 do[j]:=x0[j]+h*f[j];:=t0+h;

end;

begin

writeln('введите путь к файлу с исходными данными');

readln(l);(d,l);(d);(d,k1,k2,k3,k22,k23,fs);(d) ;

writeln('введите путь к файлу вывода');

readln(l);(d,l);(d);:=0.0; tk:=5.0;:=0.01;

{k1:=1.0; k2:=1.0; k3:=1.0; k22:=1.0; k23:=1.0; fs:=1.0; }:=0;[1]:=0.0; x0[2]:=0.0; x0[3]:=0.0;:=t0;('t=',t:2:2,'; x1=',x0[1]:5:6,'; x2=',x0[3]:5:6,'; x3=',x0[2]:5:6,';');(d,'t=',t:2:2,'; x1=',x0[1]:5:6,'; x2=',x0[3]:5:6,'; x3=',x0[2]:5:6,';');t<=tk do(t,t0,h,x0,x);:=n+1;n=10 then(d,'t=',t:2:2,'; x1=',x[1]:5:6,'; x2=',x[3]:5:6,'; x3=',x[2]:5:6,';');('t=',t:2:2,'; x1=',x[1]:5:6,'; x2=',x[3]:5:6,'; x3=',x[2]:5:6,';');:=0;;j:=1 to 3 do0[j]:=x[j];

t0:=t;

end;

close(d);

end.


Файл с исходными данными



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


tx1x2х20.000.0000000.0000000.0000000.100.0001160.0042640.0956180.200.0010460.0168150.1820930.300.0035400.0359140.2603000.400.0081800.0600020.3310280.500.0154020.0876940.3949940.600.0255100.1177670.4528430.700.0386920.1491480.5051610.800.0550360.1809100.5524770.900.0745440.2122550.5952681.000.0971430.2425110.6339681.100.1226970.2711170.6689671.200.1510200.2976190.7006201.300.1818850.3216570.7292461.400.2150330.3429580.7551351.500.2501800.3613270.7785481.600.2870270.3766420.7997231.700.3252660.3888390.8188731.800.3645840.3979140.8361921.900.4046700.4039080.8518552.000.4452200.4069030.866020tx1x2х22.100.4859390.4070200.8788312.200.5265450.4044040.8904172.300.5667730.3992290.9008952.400.6063750.3916850.9103712.500.6451240.3819780.9189412.600.6828120.3703210.9266922.700.7192550.3569360.9337022.800.7542900.3420470.9400412.900.7877770.3258780.9457743.000.8195980.3086490.9509593.100.8496550.2905750.9556483.200.8778750.2718630.9598893.300.9042020.2527130.9637243.400.9286020.2333100.9671933.500.9510560.2138320.9703303.600.9715660.1944410.9731673.700.9901450.1752870.9757333.801.0068250.1565060.9780533.901.0216490.1382200.9801524.001.0346690.1205360.9820494.101.0459520.1035480.9837664.201.0555710.0873350.985318tx1x2х24.301.0636060.0719660.9867224.401.0701430.0574920.9879924.501.0752750.0439550.9891404.601.0790970.0313850.990178

График зависимости x(t)



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


1. А.М. Епанешников, В.А. Епанешников. Программирование в среде TURBO PASCAL 7.0. - 3-е изд.,стер. - М.: «ДИАЛОГ-МИФИ», 2004 - 367с.

. Вирт Н. Алгоритмы и структуры данных с примерами на Паскале.- 2-е изд. - СПб. : Невский диалект, 2007 .- 352с.

. Марченко А.И. Программирование в среде Turbo Pascal 7.0 / А.И. Марченко,Л.А. Марченко .- 8-е изд. - Киев : Корона Принт, 2004 .- 464с.

. Фаронов, В.В. Turbo Pascal : учеб. пособие для вузов / В.В. Фаронов .- М.[и др.] : Питер, 2007 .- 367с

. Шафрин Ю. А. Информационные технологии: В 2 ч. - М.: Лаборатория Базовых Знаний, 2001.


Министерство образования и науки РФ Федеральное бюджетное государственное образовательное учреждение высшего профессионального образования «Тульск

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ