Скачиваний:
42
Добавлен:
10.05.2014
Размер:
47.37 Кб
Скачать

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

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

НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ ЯДЕРНЫЙ УНИВЕРСИТЕТ

Отчет по лабораторной работе № 2

«ЧИСЛЕННОЕ РЕШЕНИЕ ЗАДАЧИ КОШИ ДЛЯ ЛИНЕЙНОГО ОБЫКНОВЕННОГО ДИФФЕРЕНЦИАЛЬНОГО УРАВНЕНИЯ ВТОРОГО ПОРЯДКА»

Программа/

Результат

Теоретический материал

Оценка

Группа: Ф-03

Курс: Численные методы

Выполнил:

Преподаватель: Рябов Павел Николаевич

Москва 2012 год

  1. Решаем уравнение

2. График точного решения :

3. Ниже приведены результаты, полученные при выполнении лабораторной работы.

Метод Эйлера

h = 0,05

Метод Рунге-Кутты 4,

c h= 0.1

Метод Рунге-Кутты 4,

c h= 0.05

Поправка Рунге ΔuР для метода Рунге –Кутты 4

Точное решение u0(x) в узлах сетки

uЭ0= 1,0

uЭ1= 1,0500

uЭ2= 1,0975

.

.

.

uЭN= 1,4178

u1РК0= 1,0

u1РК1= 1,094837637

u1РК2= 1,178736013

.

.

u1РКN= 1,381773857

u2РК0= 1,0

u2РК1= 1,048729431

u2РК2= 1,094837585

.

.

.

u2РКN= 1,38177333

Δu0= 0

Δu1= -3.45e-9

Δu2= -6.56e-9

.

ΔuN= -3.55e-8

u0= 1,000000000

u1= 1,048729430

u2= 1,094837582

.

.

.

uN= 1,381773291

Погрешность метода в каждом узле расчётной области (шаг ). Результаты занесены в таблицу.

Модуль разности решения по методу Эйлера и точного решения,

Модуль разности решения по методу РК4 с h=0.1 и точного решения,

Модуль разности решения по методу РК4 с h=0.05 и точного решения,

0,0

1,27 e-3

2,66 e-3

4,17 e-3

5,77 e-3

7,47 e-3

9,24 e-3

1,11 e-2

1,30 e-2

1,49 e-2

1,69 e-2

1,89 e-2

2,10 e-2

2,30 e-2

2,50 e-2

2,70 e-2

2,89 e-2

3,08 e-2

3,26 e-2

3,44 e-2

3,60 e-2

0,0

5,51 e-8

1,05 e-7

1,52 e-7

1,98 e-7

2,46 e-7

2,98 e-7

3,54 e-7

4,18 e-7

4,88 e-7

5,67 e-7

0,0

1,73 e-9

3,36 e-9

4,90 e-9

6,39 e-9

7,83 e-9

9,25 e-9

1,07 e-8

1,21 e-8

1,35 e-8

1,50 e-8

1,66 e-8

1,82 e-8

1,99 e-8

2,17 e-8

2,36 e-8

2,55 e-8

2,76 e-8

2,98 e-8

3,22 e-8

3,46 e-8

0,0

7,15 e-11

1,96 e-10

2,74 e-10

2,98 e-10

3,95 e-10

4,38 e-10

5,09 e-10

5,93 e-10

7,65 e-10

8,49 e-10

Метод Эйлера

/* Method Eilera */

#include<stdio.h>

#include<math.h>

#include<conio.h>

double p(double x) {

return cos(x) ;

}

double q(double x) {

return sin(x) ;

}

double f(double x) {

return 1-cos(x)-sin(x) ;

}

double u0(double x) {

return sin(x)+cos(x) ;

}

double y_0 =1, y_1 =1; //нач. условия

double h =0.05, lbnd= 0.0, rbnd= 1.0; //шаг и границы отрезка

int main()

{

double xi=lbnd, zi=y_1, zi1, yi=y_0, yi1 ;

printf(" x u0 (x) y(x) |y-u0| \n\n") ;

while (xi < rbnd) {

zi1 = zi + h * (f(xi) - p(xi)*zi - q(xi)*yi) ;

yi1 = yi + h * zi ;

printf("%.3f %.10f %.10f %.2e\n", xi, u0(xi), yi, abs(yi-u0(xi)) ) ;

zi = zi1 ; yi = yi1 ; xi = xi + h ;

} printf("%.3f %.10f %.10f %.2e\n", xi, u0(xi), yi, abs(yi-u0(xi)) ); //на правой границе

getch();

return 0;

}

Метод Рунге–Кутты 4 порядка p

/* Method Runge-Kutty 4 poryadka */

#include<stdio.h>

#include<math.h>

#include<conio.h>

double p(double x) {

return cos(x) ;

}

double q(double x) {

return sin(x) ;

}

double f(double x) {

return (1-cos(x)-sin(x)) ;

}

double u0(double x) {

return sin(x)+cos(x) ;

}

double y_0 =1, y_1 =1; //нач. условия

double h= 0.05, lbnd= 0.0, rbnd= 1.0; //шаг и границы отрезка

int main()

{

double xi=lbnd, yi=y_0, yi1, zi=y_1, zi1 ;

double K1, K2, K3, K4, Q1, Q2, Q3, Q4 ;

printf(" x u0 (x) y(x) |y-u0| \n\n");

while (xi < rbnd) {

// K для ∆y, Q для ∆z

K1= h*zi ;

Q1= h* (f(xi) - p(xi)*zi - q(xi)*yi) ;

K2= h*(zi + Q1/2) ;

Q2= h* ( f(xi+h/2) - p(xi+h/2)*(zi+Q1/2) - q(xi+h/2)*(yi + K1/2) );

K3= h*(zi + Q2/2) ;

Q3= h* ( f(xi+h/2) - p(xi+h/2)*(zi+Q2/2) - q(xi+h/2)*(yi + K2/2) ) ;

K4= h*(zi + Q3) ;

Q4= h* ( f(xi+h) - p(xi+h)*(zi+Q3) - q(xi+h)*(yi+K3) ) ;

yi1= yi + (K1+2*(K2+K3)+K4)/6 ;

zi1 = zi + (Q1+2*(Q2+Q3)+Q4)/6 ;

printf("%.3f %.10f %.10f %.2e\n", xi, u0(xi), yi, abs(yi-u0(xi)) ) ;

zi = zi1 ; yi = yi1 ; xi = xi + h ;

} printf("%.3f %.10f %.10f %.2e\n", xi, u0(xi), yi, abs(yi-u0(xi)) ) ;

getch();

return 0;

}

Соседние файлы в папке 2. Задача Коши для ОДУ 2 порядка