Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабы по матану.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
45 Кб
Скачать
☆

Лабораторная работа №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