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

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

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

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

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

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

Программа/

Результат

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

Оценка

Группа: Ф-0

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

Выполнил:

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

Москва 2012 год

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

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

Метод Эйлера

h = 0,05

Метод Рунге-

Кутты 4,

c h= 0.1

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

c h= 0.05

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

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

-1.0000

-1.0500

-1.0975

-1.1427

-1.1857

-1.2269

-1.2665

-1.3049

-1.3426

-1.3799

-1.4172

-1.4551

-1.4939

-1.5342

-1.5764

-1.6209

-1.6684

-1.7191

-1.7736

-1.8323

-1.8957

-1.00000000

-1.09520391

-1.18192344

-1.26242155

-1.33962194

-1.41689728

-1.49786695

-1.58624443

-1.68574813

-1.80006956

-1.93288379

-1.0000000000

-1.0487731719

-1.0952040449

-1.1395007408

-1.1819236355

-1.2227807400

-1.2624217587

-1.3012313519

-1.3396221376

-1.3780279103

-1.4168974586

-1.4566892452

-1.4978670945

-1.5408969310

-1.5862445290

-1.6343741830

-1.6857481743

-1.7408268986

-1.8000695226

-1.8639350471

-1.9328836718

0.0E+00

-9.3E-09

-1.3E-08

-1.4E-08

-1.3E-08

-1.2E-08

-9.9E-09

-6.8E-09

-2.7E-09

2.3E-09

7.7E-09

-1.00000000000

-1.04877317659

-1.09520405283

-1.13950075059

-1.18192364619

-1.22278075091

-1.26242176923

-1.30123136181

-1.33962214680

-1.37802791873

-1.41689746620

-1.45668925186

-1.49786710023

-1.54089693563

-1.58624453240

-1.63437418502

-1.68574817471

-1.74082689732

-1.80006951955

-1.86393504218

-1.93288366506

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

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

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

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

0.0E+00

1.2E-03

2.3E-03

3.2E-03

3.8E-03

4.1E-03

4.1E-03

3.7E-03

3.0E-03

1.8E-03

3.1E-04

1.6E-03

4.0E-03

6.7E-03

9.9E-03

1.3E-02

1.7E-02

2.2E-02

2.6E-02

3.2E-02

3.7E-02

0.0E+00

1.5E-07

2.1E-07

2.2E-07

2.1E-07

1.9E-07

1.5E-07

1.1E-07

4.1E-08

-3.8E-08

-1.2E-07

0.0E+00

4.7E-09

7.9E-09

9.8E-09

1.1E-08

1.1E-08

1.1E-08

9.9E-09

9.2E-09

8.4E-09

7.6E-09

6.7E-09

5.7E-09

4.6E-09

3.4E-09

2.0E-09

4.2E-10

-1.3E-09

-3.1E-09

-4.9E-09

-6.8E-09

0.0E+00

1.4E-09

2.6E-09

3.6E-09

4.2E-09

4.4E-09

4.1E-09

3.4E-09

2.3E-09

7.8E-10

9.0E-10

Код

uses crt, math;

Function pU(x,y,z:real):real; //funkcia posle u'=...

begin

pU:= z;

end;

Function pZ(x,y,z:real):real; //funkcia posle z'=...

begin

pZ:=cosh(x)+x*sinh(x)-sinh(x)*y-cosh(x)*z;

end;

Function U(x:real):real; //U- tochnoe reshenie

begin

U:= x+ exp(-sinh(x));

end;

var

x,y,z,y2,dy:array [0..100] of real;

h,k1,k2,k3,k4,m1,m2,m3,m4:real;

i,n:integer;

output:text;

begin

Assign(output,'out2.txt');

Rewrite(output);

clrscr;

n:=20;

h:=0.05;

x[0]:=0; //nach usloviya

y[0]:= 1; //u(0) dlya shaga h

y2[0]:=1; //u(0) dlya shaga 2h

z[0]:=0; //u'(0)

Writeln(output,'Tochnoe reshenie na melkoi setke (h)');

Writeln(output,u(x[0]));

For i:=1 to n do

begin

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

Writeln(output,u(x[i]));

end;

Writeln(output);

//Method Eulera

Writeln(output,'Euler na setke h');

//Rac4ety

For i:=0 to n do

begin

y[i+1]:=y[i]+z[i]*h;

z[i+1]:=z[i]+pZ(x[i],y[i],z[i])*h;

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

end;

//Vyvod rezultata

Writeln(output,' u |u-u0|');

For i:=0 to n do

Writeln(output,y[i],' ',abs(y[i]-u(x[i])):1 );

Writeln(output);

//Method Runge-Kutty 4

Writeln(output,'RK4 na setke h s uto4neniem na shage 2h');

//Ras4ety dlya zadannogo shaga h

For i:=0 to n do

begin

k1:=h*pZ(x[i],y[i],z[i]);

m1:=h*pU(x[i],y[i],z[i]);

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

m2:=h*pU(x[i]+h/2,y[i]+m1/2,z[i]+k1/2);

k3:=h*pZ(x[i]+h/2,y[i]+m2/2,z[i]+k2/2);

m3:=h*pU(x[i]+h/2,y[i]+m2/2,z[i]+k2/2);

k4:=h*pZ(x[i]+h,y[i]+m3,z[i]+k3);

m4:=h*pU(x[i]+h,y[i]+m3,z[i]+k3);

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

y[i+1]:=y[i]+(1/6)*(m1+2*m2+2*m3+m4);

end;

//Ras4ety dlya grubogo shaga 2h

h:=2*h;

i:=0;

While i<=n do

begin

k1:=h*pZ(x[i],y[i],z[i]);

m1:=h*pU(x[i],y[i],z[i]);

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

m2:=h*pU(x[i]+h/2,y[i]+m1/2,z[i]+k1/2);

k3:=h*pZ(x[i]+h/2,y[i]+m2/2,z[i]+k2/2);

m3:=h*pU(x[i]+h/2,y[i]+m2/2,z[i]+k2/2);

k4:=h*pZ(x[i]+h,y[i]+m3,z[i]+k3);

m4:=h*pU(x[i]+h,y[i]+m3,z[i]+k3);

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

y2[i+2]:=y2[i]+(1/6)*(m1+2*m2+2*m3+m4);

i:=i+2;

end;

//Vyvod

Writeln(output,' u1 u2 |u1-u0| |u2-u0| dy |u2*-u0|');

i:=0;

While i<=n do

begin

dy[i]:=(y[i]-y2[i])/15;

Writeln(output,y2[i],' ',y[i],' ',y2[i]-u(x[i]):1,' ',y[i]-u(x[i]):1,' ',dy[i]:1,' ',dy[i]+y[i]-u(x[i]):1);

i:=i+1;

Writeln(output,' ',y[i],' ',y[i]-u(x[i]):1);

i:=i+1;

end;

Writeln(output);

Close(output);

Writeln('out2.txt');

Readln;

end.

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