русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Метод Рунге-Кутта


Дата добавления: 2014-11-28; просмотров: 1176; Нарушение авторских прав


Для повышения точности вычисления значений функции требуется проведение дополнительных вычислений внутри интервала h, то есть между xi и xi+1. Метод Рунге-Кутта даёт набор формул для расчёта координат внутренних точек, требуемых для достижения точности, то есть ошибки на каждом шаге, порядка h4. Расчёты при использовании этого метода производятся по формуле:

,

где k0=hf(xi,yi), k1=hf(xi+h/2, yi+k0/2),
k2=hf(xi+h/2, yi+k1/2), k3=hf(xi+h, yi+k2).

Метод Эйлера и его модификация по сути дела являются методами Рунге-Кутта первого и второго порядка соответственно. По сравнению с ними метод Рунге-Кутта обеспечивает более высокую точность, что позволяет увеличить шаг интегрирования h. Допустимая погрешность на шаге определяет его максимальную величину.

Пример 3.Приведём фрагмент программы для решения дифференциального уравнения из примера 1 методом Рунге-Кутта:

Program Runge;

Uses Crt;

Var

xn,xk,yn,h,k0,k1,k2,k3:real;

i,n:integer;

x,y:array [1..20] of real;

 

Function f(x,y:real):real;

begin

f:=2*x*x+2*y;

end;

 

Begin

ClrScr;

Writeln(' Решение дифференциального уравнения ');

Writeln(' dy/dx=2x^2+2y методом Рунге-Кутта ');

xn:=0; yn:=1; xk:=1; h:=0.1;

x[1]:=xn; y[1]:=yn; i:=1;

repeat

k0:=h*f(x[i],y[i]);

k1:=h*f(x[i]+h/2,y[i]+k0/2);

k2:=h*f(x[i]+h/2,y[i]+k1/2);

k3:=h*f(x[i]+h,y[i]+k2);

y[i+1]:=y[i]+(k0+2*k1+2*k2+k3)/6;

x[i+1]:=x[i]+h;

i:=i+1;

until x[i]>xk;

n:=i;

Writeln('----------------------');

Writeln('| № | x | y |');

Writeln('----------------------');

for i:= 1 to n do

Writeln('|', i:2, ' |', x[i]:5:2, ' |', y[i]:7:4, ' |');

Writeln('----------------------');

Readln;

End.

Задание

Дать сравнительную оценку результатов решения дифференциального уравнения из примера 1 =2x2+2y при начальном условии y(0)=1; 0£ x£1 и h=0,1 обычным и модифицированным методами Эйлера и методом Рунге-Кутта. Для проверки использовать точное решение этого уравнения y=1,5e2x - x2 - x - 0,5. Составить программу, выполняющую вычисления с использованием массивов. Результаты расчёта представить в виде таблицы и вывести её на экран и принтер:



x Метод Эйлера Модифицированный метод Эйлера Метод Рунге-Кутта Точное решение
0.0 1.0000 1.0000 1.0000 1.0000
0.1 1.2000 1.2210 1.2221 1.2221
0.2 1.4420 1.4948 1.4977 1.4977
0.3 1.7384 1.8375 1.8432 1.8432
0.4 2.1041 2.2685 2.2783 2.2783
0.5 2.5569 2.8118 2.8274 2.8274
0.6 3.1183 3.4964 3.5201 3.5202
0.7 3.8139 4.3578 4.3927 4.3928
0.8 4.6747 5.4393 5.4894 5.4895
0.9 5.7376 6.7938 6.8643 6.8645
1.0 7.0472 8.4856 8.5834 8.5836

 

Приложение

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



<== предыдущая лекция | следующая лекция ==>
Модифицированный метод Эйлера | Http://www.borland.com


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.103 сек.