35234

Метод Рунге-Кутта вирішення задачі Коші. Складання алгоритму

Практическая работа

Информатика, кибернетика и программирование

Навчитися вирішувати задачу Коші методом Рунге-Кутта; скласти алгоритм.

Украинкский

2013-09-09

37.5 KB

2 чел.

7.03.09  Мишура Денис, гр. 1ПМ-06

 Вариант 11

Лабораторна робота №26-27

Тема: Метод Рунге-Кутта вирішення задачі Коші. Складання алгоритму.

Мета: Навчитися вирішувати задачу Коші методом Рунге-Кутта; скласти алгоритм.

Устаткування: папір формату А4, ПК, програмне забезпечення Borland С++.

  1.  Індивідуальне завдання.

Вирішити задачу, використовуючи метод Рунге-Кутта для диференціального рівняння  с початковою умовою , обчислити з точністю до  рішення цього рівняння при , . Обчислення провести із двома запасними знаками.

11)

Текст програми:

#include<iostream.h>

#include<math.h>

void main()

{int i,n;

double h,a,b,dely;

double*k = new double [4];

double*x=new double [n+1];

double*y=new double [n+1];

cout<<"Vvedite a,b,h"<<endl;

cin>>a;

cin>>b;

cin>>h;

cout<<"Vvedite y[0]"<<endl;

cin>>y[0];

n=(b-a)/h;

x[0]=a;

cout<<"    x    |   y  ";

cout<<endl;

cout<<"-------------------";

cout<<endl;

for(i=0;i<=n;i++)

{

k[0]=h*(0.3*x[i]+y[i]*y[i]);

k[1]=h*(0.3*(x[i]+h/2)+(y[i]+k[0]/2)*(y[i]+k[0]/2));

k[2]=h*(0.3*(x[i]+h/2)+(y[i]+k[1]/2)*(y[i]+k[1]/2));

k[3]=h*(0.3*(x[i]+h)+(y[i]+k[2])*(y[i]+k[2]));

dely=(k[0]+2*k[1]+2*k[2]+k[3])/6;

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

y[i+1]=y[i]+dely;

}

cout<<"  "<<x[n]<<"    |  "<<y[n]<<"\n";

cout<<endl;

}

  1.  Контрольні питання
  •  Поставте задачу, розв’язувану методом Рунге-Кутта.
  •  Сформулюйте алгоритм метода Рунге-Кутта.
  •  Який порядок точності методу Рунге-Кутта?
  •  Як практично досягти заданого ступеня точності?
  1.  Звіт про роботу.
  2.  Захист роботи.