Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

LABA_5

.1.doc
Скачиваний:
17
Добавлен:
27.03.2015
Размер:
299.01 Кб
Скачать

Нижегородский Государственный Технический Университет им. Р. Е. Алексеева.

Кафедра «Прикладная Математика».

Отчет: Лабораторная работа №5

«Дифференциальное уравнение».

Вариант 7

Выполнил:

Студент группы 11-КСУ-2

Кокурин М.А.

Проверил:

Преподаватель Белоцерковская И.Е.

г. Нижний Новгород 2012

Оглавление.

1 Метод Эйлера

Постановка задачи……………………………………………………………………………..3

Ручной счет……………………………………………………………………………………..3

Реализация в Microsoft Excel………………………………………………………………….4

Реализация в Mathcad………………………………………………………………………….4

Реализация в Microsoft Visual C++..…………………………………………………………..5

2 I модификация метода Эйлера

Постановка задачи……………………………………………………………………………..6

Ручной счет……………………………………………………………………………………..6

Реализация в Microsoft Excel………………………………………………………………….8

Реализация в Mathcad………………………………………………………………………….9

3 II модификация метода Эйлера

Постановка задачи…………………………………………………………………………….10

Ручной счет…………………………………………………………………………………….10

Реализация в Microsoft Excel…………………………………………………………………11

Реализация в Mathcad…………………………………………………………………………12

4 III модификация метода Эйлера

Постановка задачи…………………………………………………………………………….13

Ручной счет…………………………………………………………………………………….13

Реализация в Microsoft Excel…………………………………………………………………15

Реализация в Mathcad…………………………………………………………………………15

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

Постановка задачи…………………………………………………………………………….16

Ручной счет……………………………………………………………………………………16

Реализация в Microsoft Excel…………………………………………………………………17

Реализация в Mathcad…………………………………………………………………………18

Реализация в Microsoft Visual C++..…………………………………………………………19

6 Вывод………………………………………………………………………………………….20

7 Список литературы…………………………………………………………………………...20

Метод Эйлера

Реализация в Microsoft Excel:

 

метод Эйлера

x

y

z

0

2,2

0,8

0,05

2,24

0,73

0,1

2,2765

0,657127

0,15

2,309356

0,581681

0,2

2,33844

0,504002

0,25

2,363641

0,424478

Реализация в Mathcad:

Простой метод Эйлера

Реализация в Microsoft Visual C++:

#include <iostream>

#include <conio.h>

#include <math.h>

#include <iomanip>

#include <stdlib.h>

using namespace std;

int main()

{ double a,b,x,y[20],z[20],hx,y1[20],z1[20];

int i;

a=0;

b=0.25;

hx=0.05;

cout<<"Metod Eilera"<<endl;

i=0;

y[0]=2.2;

z[0]=0.8;

cout<<setw(10)<<"i"<<setw(10)<<"x"<<setw(10)<<"y"<<setw(10)<<"z"<<endl;

for(x=a;x<=b;x+=hx)

{cout<<setw(10)<<i<<setw(10)<<x<<setw(10)<<y[i]<<setw(10)<<z[i]<<endl;

y[i+1]=y[i]+hx*z[i];

z[i+1]=z[i]+hx*(3*z[i]+exp(5*x));

i+=1;}

getch();

return 0;}

I модификация метода Эйлера

Реализация в Microsoft Excel:

 

1 модификация

x

y

z

0

2,2

0,8

0,05

2,24

0,98

0,1

2,29

1,21

0,15

2,35

1,5

0,2

2,43

1,86

0,25

2,53

2,32

Реализация в Mathcad:

II модификация метода Эйлера

Реализация в Microsoft Excel:

 

2 модификация

x

y

z

0

2,2

0,8

0,05

2,24

1

0,1

2,3

1,26

0,15

2,37

1,59

0,2

2,46

2,01

0,25

2,58

2,55

Реализация в Mathcad:

III модификация метода Эйлера

Реализация в Microsoft Excel:

 

3 модификация

x

y

z

0

2,2

0,8

0,05

2,24

0,98

0,1

2,29

1,21

0,15

2,35

1,5

0,2

2,43

1,87

0,25

2,53

2,33

Реализация в Mathcad:

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

Реализация в Microsoft Excel:

Реализация в Mathcad:

Реализация в Microsoft Visual C++:

#include <iostream>

#include <math.h>

using namespace std;

void main()

{

double a,b,x,y[20],z[20],hx,y1[20],z1[20];

int i;

a=0;

b=0.25;

hx=0.05;

//Metod Runge-Kutta 4-ogo poryadka tochnosti

cout<<"Metod Runge-Kutta"<<endl;

double k0[11],k1[11],k2[11],k3[11],k01[11],k11[11],k21[11],k31[11];

i=0;

y[0]=2.2;

z[0]=0.8;

cout<<"x\ty\t\tz"<<endl;

for(x=a;x<=b;x+=hx)

{

cout<<x<<"\t"<<y[i]<<"\t"<<z[i]<<endl;

k0[i]=hx*z[i];

k01[i]=hx*(3*z[i]+exp(5*x));

k1[i]=hx*(z[i]+k0[i]/2);

k11[i]=hx*(3*(z[i]+k01[i])+exp(5*x));

k2[i]=hx*(z[i]+k1[i]/2);

k21[i]=hx*(3*(z[i]+k11[i])+exp(5*x));

k3[i]=hx*(z[i]+k2[i]);

k31[i]=hx*(3*(z[i]+k21[i])+exp(5*x));

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

z[i+1]=z[i]+(k01[i]+2*k11[i]+2*k21[i]+k31[i])/6;

i+=1;

}

char c;

cin>>c;

}

Вывод

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

15

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]