- •Метод Рунге-Кутта
- •Глава 1.
- •1.1.Суть метода Рунге-Кутта
- •Тангенс угла наклона прямой l и прямой l равен
- •В то время как для модификационного метода Эйлера
- •1.2.Назначение и область применения.
- •Глава 2.
- •2.1 Постановка задачи и разработка алгоритма решения задачи.
- •Основная блок схема
- •2.2. Выбор состава технических и программных средств.
- •2.3 Вызов и загрузка программы.
- •2.4. Тестирование программы
- •Заключение
- •Список литературы
- •Приложение: форма окна
- •Листинг программы:
Заключение
В ходе выполнения курсовой работы выполнена цель: найти приближенное решение обыкновенного дифференциального уравнения y’=f(x,y),y(a)=y0 методом Рунге-Кутта пятого порядка на отрезке [a,b] с заданным постоянным шагомh. Значение функцииy(x) в узловых точках вычисляются по формуле:
Y [i+1]=y[1]+h/6(K[i]+2K[2]+2K[3]+K[4]), i=0,1,2,…
Где K[1]=f(x[i],y[i]);
K[2]=f(x[i]+h/2, y[i]+h/2K[1]);
K[3]=f(x[i]+h/2, y[i]+h/2K[2]);
K[4]=f(x[i]+h, y+hK[3]).
С использованием языка программирования «TurboPascal» было найдено решение обыкновенного дифференциального уравнения. Вычисление функции, используемую в задаче, оформила в виде подпрограммы, так, чтобы можно было представить любую функцию, не меняя самой программы.
Список литературы
1.Бахвалов Н.С. Численные методы учебник для ВЗУов М., Наука, 1978
2.Воробьева Г.Н. Данилова А.Н. Практикум по численным методам: М., учебник 1987
3.Демидович Б.П. и Марон И.А. Основы вычислительной математики учебник для ВЗУов издание четвертое М., Наука, 1970
4.Каханер Дэвид. Численные методы и программное обеспечение учебник для ВЗУов М., Мир, 1998
5.Немнюгин С.А. TurboPascal.Практикум,учебник для ВУЗов, второе издание, С.-П., издание Питер. 2003.
6.Немнюгин С.А. TurboPascal. Программирование на языке высокого уровня. Учебник для ВУЗов, второе издание. С.–П., издание Питер, 2003.
7. Новикова Ф.А Дискретная математика для программистов. С.-П., издание Питер 2001.
8. Рюттен Т.Г. Франкен П.Р. TurboPascal7.0 – К.: Торгово-издательское бюроBHV, 1996 – 448 С.: ил.
9.Турчак Л.И. Основы численных методов учебник для ВЗУов М., Знание, 1987
10. Фараонов В.В. Турбо Паскаль (в 3-х книгах). Книга 2. Библиотека Turbo Vision.-М.: Учебно-инжерненый центр МВТУ-ФЕСТО ДИДАКТИК, 1993.
Приложение: форма окна
Borland Pascal Version 7.0 Copyright (c) 1983,92 Borland International
Рис.
Листинг программы:
PROGRAM RKutt;
uses crt;
const
nmax=8;
type
vec=array[1..nmax] of Real;
var
h,a,b:Integer; i:Integer;
procedure der(x:Real; y:vec; var f:vec);
var
ki:array[1..5] of real;
begin
for i:=1 to 5 do
f[i]:=(h/6)*ki[i]+2*ki[2]+2*ki[3]+ki[4];
y[i+1]:=y[1]+h*y[i];
y[i]:=x*x+5;
end;
procedure RK4(n:Integer;x,h:Real; var y:vec);
var
i,j:Integer;
h1,h2,q:Real;
y0,y1,f:Vec;
begin
h1:=0;h2:=h1/2;
for i:=1 to n do begin
y0[i]:=y[i];
y1[i]:=y[i];
end;
for j:=1 to 4 do begin
der(x+h1,y,f);
if j=3 then h1:=h else h1:=h2;
for i:=1 to n do begin
q:=h1*f[i];
y[i]:=y0[i]+q;
y1[i]:=y1[i]+q/3;
end;
end;
for i:=1 to n do
y[i]:=y1[i];
end;
var
k,n:Integer;h1,y1:Real;
k1,k2,k3,k4:Integer;
x,ki:Array[1..5] of real;
y:Array[1..5] of real;
begin
writeln('Enter a=');
Readln(a);
writeln('Enter b=');
Readln(b);
writeln('Enter h1=');
Readln(h1);
writeln('Enter k=');
Readln(k);
n:=3;
h1:=a;
ki[1]:=k;
for i:=1 to n do begin
y[i+1]:=y1+(h1/6)*(Ki[i]+2*ki[2]+2*ki[3]+ki[4]);
writeln(y[i+1]);
end;
while h1<=b do begin
h1:=h1+h;
end;
Readln;
end.