- •Лабораторная работа №1 Отделение корней
- •Метод половинного деления
- •Метод хорд
- •Метод касательных
- •Лабораторная работа №2
- •Метод Зейделя
- •Лабораторная работа №3 Метод Лангранжа
- •Лабораторная работа №4
- •Лабораторная работа №5 Метод Эйлера
- •Метод Эйлера-Коши
- •Введите шаг - 0.1
- •Классический метод Рунге-Кутта
- •Лабораторная работа №6
Лабораторная работа №2
program slu_iter;
var p,b,x1,x2,x3,y1,y2,y3,a,e: real;
N: integer;
begin
write('Введите x1, x2, x3 : '); readln(x1,x2,x3);
write('Введите A, E : '); readln(a,e);
b:=e*(1-a)/a;
N:=0; {число итераций}
repeat
N:=N+1;
y1:= 0.079365*x2+0.238095*x3+0.539683;
y2:= 0.147059*x1+0.294118*x3+0.941176;
y3:= 0.211268*x1+0.140845*x2+0.591449;
p:=sqrt(sqr(x1-y1)+sqr(x2-y2)+sqr(x3-y3));
x1:=y1; x2:=y2; x3:=y3;
until p<=b;
writeln('x1 = ',x1:8:6);
writeln('x2 = ',x2:8:6);
writeln('x3 = ',x3:8:6);
writeln('Число итераций - N = ',N);
readln
end.
Введите x1, x2, x3 : 0 0 0
Введите A, E : 0.146323 0.0001
x1 = 0.877513
x2 = 1.354723
x3 = 0.967577
Число итераций - N = 9
Метод Зейделя
program slu_zejdel1;
var p,b,x1,x2,x3,y1,y2,y3,a,e: real;
N: integer;
begin
write('Введите x1, x2, x3 : '); readln(x1,x2,x3);
write('Введите A, E : '); readln(a,e);
b:=e*(1-a)/a;
N:=0; {число итераций}
repeat
N:=N+1;
y1:= 0.079365*x2+0.238095*x3+0.539683;
y2:= 0.147059*x1+0.294118*x3+0.941176;
y3:= 0.211268*x1+0.140845*x2+0.591449;
p:=sqrt(sqr(x1-y1)+sqr(x2-y2)+sqr(x3-y3));
x1:=y1; x2:=y2; x3:=y3;
until p<=b;
writeln('x1 = ',x1:8:6);
writeln('x2 = ',x2:8:6);
writeln('x3 = ',x3:8:6);
writeln('Число итераций - N = ',N);
readln
end.
Введите x1, x2, x3 : 0 0 0
Введите A, E : 0.146323 0.0001
x1 = 0.877513
x2 = 1.354723
x3 = 0.967577
Число итераций - N = 9
Лабораторная работа №3 Метод Лангранжа
program lagrang;
const k=30;
type vektor=array[1..k] of real;
var x,y: vektor;
n,i,j: byte;
l,f,a,m: real;
begin
write('Введите количество узлов интерполирования - ');
readln(n);
writeln('Введите парами значения Х и Y');
for i:=1 to n do readln(X[i],y[i]);
repeat
write('Введите заданное значение аргумента - ');
readln(A);
F:=0;
for i:=1 to n do
begin L:=1;
for j:=1 to n do
if i<>j then L:=L*(A-X[j])/(X[i]-X[j]);
L:=L*Y[i];
F:=F+L;
end;
writeln('При Х=',A:5:3,' F(',A:5:3,') = ',F:10:6);
writeln;
writeln('Если хотите продолжить, введите 1,');
writeln('в противном случае введите 0'); readln(m)
until M=0
end.
Введите количество узлов интерполирования - 7
Введите парами значения Х и Y
-3.2 -1.94
-0.8 -0.61
0.4 0.31
2.8 1.81
4.0 2.09
6.4 1.47
7.6 0.68
Введите заданное значение аргумента – 3.5
При Х=3.500 F(3.500) = 2.021336
Если хотите продолжить вычисление, введите 1,
в противном случае введите 0
Лабораторная работа №4
program lab_4_1a;
var i,n :integer;
s,h,a,b,x :real;
function f(x: real):real;
begin f:=(3*cos(x))/(2*x+1.7);
end;
begin
write('Введите левую и правую границы отрезка - ');
readln(a,b);
write('Введите шаг - '); readln(h);
n:=round(abs((b-a)/h));
s:=0;
for i:=0 to n do
begin
x:=a+h*i;
s:=s+f(x);
end;
s:=h*(s-(f(a)+f(b))/2);
writeln('Искомый определенный интеграл равен ',s:10:6);
readln;
end.
Введите левую и правую границы отрезка - 0 1
