Методы вычислительной математики

Автор: Пользователь скрыл имя, 19 Февраля 2013 в 21:14, контрольная работа

Описание работы

Задание 1 Решить заданную систему линейных уравнений методом простых итераций.
Задание №2. Отделить корни уравнения, используя графико –аналитический метод. Найти корни уравнения методами бисекций, Ньютона или простых итераций. Выполнить проверку правильности найденных решений, вычислив невязки.
Задача №02. Найти приближенное решение задачи Коши y’’=f(x;y;y’), y(x0)=y0, y’(x0)=y0’или y’’’=f(x;y;y’;y’’), y(x0)=y0; y’(x0)=y0’; y’’(x0)=y0’’ методами Эйлера и Рунге-Кутта 4 порядка на отрезке [0;1] с шагом h=0,1 (h=0,01).
y’’+2y’+5y=-8sin2x; y(0)=2, y’(0)=6.

Работа содержит 1 файл

вычмат.docx

— 252.79 Кб (Скачать)

function f(x: real): real;

begin

         f :=cos(x*x*x); {задание подынтегральной функции}

end;

 

function Simp (a, b: real; N:integer): real;

var      y,h, x:                       real;

         i: integer;

begin

         h:=(b-a)/N;

         y:=0;

 

         x:=A;

         for i:=1 to ((N-2 div 2 )+1) do

begin

          y:=y+f(x)+4*f(x+h)+f(x+2*h);

          x:=x+2*h;

   end;

          Simp:=y*h/3;

end;

 

begin

          ClrScr;

          writeln ('Приближенное вычисление определенных интегралов');

          writeln ('-----------------------------------------------');

          writeln ('                Метод Симпсона                 ');

          writeln ('              (с табулированием)               ');

          writeln;

          write   (' Введите четное число интервалов разбиений N:  ');

          readln (N);

          write   ('    Введите нижний предел интегрирования a:    ');

          readln (a);

          write   ('    Введите верхний предел интегрирования b:   ');

          readln (b);

          write   ('                Введите шаг Delta:             ');

          readln  (Delta);

          writeln ('                    результат:                 ');

          writeln (' --------------------------------------------- ');

          writeln ('!     X     !        Y       !       Er      ! ');

          writeln (' --------------------------------------------- ');

          Step :=  Round ((b-a)/Delta)+1;

          for i:=1 to Step do

begin

          x :=a+Delta*(i-1);

          y1:=Simp(a,x,N);

          y2:=Simp(a,x,2*N);

          Er:=(y2-y1)/15;

          y :=y2+Er;

          writeln  (x:12:5, y:12:5, Er:12:5);

   end;

          writeln ('             Нажмите любую клавишу...          ');

          ch:=readkey;

end.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

program slau;

uses crt;

var

a11,a12,a13,a14:real;

a21,a22,a23,a24:real;

a31,a32,a33,a34:real;

a41,a42,a43,a44:real;

b1,b2,b3,b4:real;

x10,x20,x30,x40:real;

x1,x2,x3,x4:real;

n1,n2,n3,n4:real;

eps:real; e:real;

iter,MaxIt:integer;

ch:char;

 

begin

Clrscr;

writeln('Решение системы  четырх линеных уравнений');

writeln('----------------------------------------');

writeln('Метод Гауса-Зейделя');

write('Введите коэффициенты  первого уравнения a11 a12 a13 a14:');

readln(a11,a12,a13,a14);

write('Введите коэффициенты  второго уравнения a21 a22 a23 a24:');

readln(a21,a22,a23,a24);

write('Введите коэффициенты  третьего уравнения a31 a32 a33 a34:');

readln(a31,a32,a33,a34);

write('Введите коэффициенты  четвертого уравнения a41 a42 a43 a44:');

readln(a41,a42,a43,a44);

write('Введите свободные  члены b1 b2 b3 b4:');

readln(b1,b2,b3,b4);

write('Введите начальное  приближение x10 x20 x30 x40:');

readln(x10,x20,x30,x40);

write('Введите погрешность:');

readln(eps);

write('Введите максимальньное  число итераций');

readln(MaxIt);

iter :=1;

 

repeat

x1 := (b1 - a12*x20 - a13*x30 - a14*x40)/a11;

x2 := (b2 - a21*x1 - a23*x30 - a24*x40)/a22;

x3 := (b3 - a31*x1 - a32*x2 - a34*x40)/a33;

x4 := (b4 - a41*x1 - a42*x2 - a43*x3)/a44;

E := sqrt (sqr(x1-x10)+sqr(x2-x20)+sqr(x3-x30)+sqr(x4-x40));

x10 :=x1;

x20 :=x2;

x30 :=x3;

x40 :=x4;

iter :=iter+1;

until (E < eps) or (iter > MaxIt);

{Подсчет невязок}

n1:=abs(a11*x1+a12*x2+a13*x3+a14*x4-b1);

n2:=abs(a21*x1+a22*x2+a23*x3+a24*x4-b2);

n3:=abs(a31*x1+a32*x2+a33*x3+a34*x4-b3);

n4:=abs(a41*x1+a42*x2+a43*x3+a44*x4-b4);

writeln('Невязки');

writeln('n1= ',n1:8:5,' n2= ',n2:8:5,' n3= ',n3:8:5,' n4= ',n4:8:5);

writeln('Решения');

writeln('Решение системы  четырх линеных уравнений');

writeln('X1= ',x10:5:3,' X2= ',x2:6:3,' X3= ',x3:6:3,' X4= ',x4:6:3);

writeln('количество итераций: ',iter - 1);

writeln('Нажмите любую клавишу...');

ch:=readkey;

end.


Информация о работе Методы вычислительной математики