Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
2 Метод хорд
unit mhord;
interface
uses crt;
type hord=object
a,b,c,cp,eps:real;
constructor init;
procedure shag;
function poisk:real;
end;
function funct(x:real):real;
implementation
function funct(x:real):real;
begin
funct:=x*x*x*x*x+5*x+1;
end;
constructor hord.init;
begin
clrscr;
writeln(' Metod HORD');
write('Vvedite pogreshnost eps = ');
readln(eps);
write('Vvedite nachalo otrezka: a = ');
readln(a);
write('Vvedite konets otrezka: b = ');
readln(b);
cp:=b;
c:=b-(funct(b)*(a-b))/(funct(a)-funct(b));
end;
procedure hord.shag;
begin
if(funct(a)*funct(c)>0)
then a:=c
else b:=c;
cp:=c;
c:=b-(funct(b)*(a-b))/(funct(a)-funct(b));
end;
function hord.poisk:real;
begin
while (abs(c-cp)>eps) do
begin
if(funct(c)=0) then
begin
break;
end
else
begin
shag;
end;
end;
poisk:=c;
end;
end.
2 Умножение матрицы на матрицу
unit manama;
interface
uses crt;
type mptr = ^matrix;
matrix=object
a:array[1..3,1..3]of real;
constructor init;
procedure printf;
procedure summ(e,f:matrix;t:mptr);
end;
implementation
constructor matrix.init;
var i,j:integer;
begin
clrscr;
writeln(' Matrica na matricu ');
for i:=1 to 3 do
begin
for j:=1 to 3 do
begin
write('Vvedite elementi matritsi[',i,',',j,'] =');
readln(a[i,j]);
end;
end;
end;
procedure matrix.printf;
var i,j:integer;
begin
for i:=1 to 3 do
begin
for j:=1 to 3 do
begin
write(a[i,j]:3:3,' ');
end;
writeln;
end;
end;
procedure matrix.summ;
var i,j,k:integer;
s:real;
begin
For i:= 1 to 3 do
begin
For j:= 1 to 3 do
begin
s:=0;
for k:= 1 to 3 do
begin
s:=s+e.a[i,k]*f.a[k,j];
end;
t^.a[i,j]:=s;
end;
end;
end;
end.
3 Метод Рунге-Кутта
unit rk;
interface
uses crt;
type TEiler=object
x,y,h,b,dx1,dx2,dx3,dx4,ddx:real;
constructor init;
procedure shag;
procedure poisk;
end;
function proizv(f,g:real):real;
implementation
function proizv(f,g:real):real;
begin
proizv:=f*f+f*g+g*g;
end;
constructor TEiler.init;
begin
clrscr;
x:=0;
y:=0.5;
h:=0.1;
b:=1;
end;
procedure TEiler.shag;
begin
dx1:=proizv(x,y);
dx2:=proizv(x+h/2,y+h*dx1/2);
dx3:=proizv(x+h/2,y+h*dx2/2);
dx4:=proizv(x+h,y+h*dx3);
ddx:=(dx1+2*dx2+2*dx3+dx4)/6;
y:=y+ddx*h;
x:=x+h;
end;
procedure TEiler.poisk;
var f:text;
begin
assign(f,'1.txt');
rewrite(f);
while (x<=b) do
begin
writeln('x=',x:3:3,' ','y=',y:3:3);
writeln(f,x,' ',y);
shag;
end;
close(f);
end;
end.
5