Автор: Пользователь скрыл имя, 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.
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(
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+
n2:=abs(a21*x1+a22*x2+a23*x3+
n3:=abs(a31*x1+a32*x2+a33*x3+
n4:=abs(a41*x1+a42*x2+a43*x3+
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.