85110 (Шпаргалка по численным методам)
Описание файла
Документ из архива "Шпаргалка по численным методам", который расположен в категории "". Всё это находится в предмете "математика" из , которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "к экзамену/зачёту", в предмете "математика" в общих файлах.
Онлайн просмотр документа "85110"
Текст из документа "85110"
Шпаргалка по численным методам
{кофф линейноного уавнения}
a:=y2-y1
b:=x1-x2
c:=-x1*(y2-y1)+y1*(x2-x1)
{лежит ли точка на прямой}
p:=false;
if (x3-x1)*(y2-y1)-(y3-y1)*(x2-x1)=0
then p:=true;
{расположение точек}
l:='1';
z1:=(x3-x1)*(y2-y1)-(y3-y1)*(x2-x1);
z2:=(x4-x1)*(y2-y1)-(y4-y1)*(x2-x1);
if z1*z2<0;
then l:='2';
{расположение отрезков}
p:=true;
z1:=(x3-x1)*(y2-y1)-(y3-y1)*(x2-x1)
z2:=(x4-x1)*(y2-y1)-(y4-y1)*(x2-x1)
if z1*z2>0
then p:=false;
z3:=(x1-x3)*(y4-y3)-(y1-y3)*(x4-x3)
z4:=(x2-x3)*(y4-y3)-(y2-y3)*(x4-x3)
if z3*z4>0
then p:=false;
{Точка пересечения отрезков}
y=(a1c2-a2c1)/(a2b1-a1b2)
x=(b1c2-b2c1)/(b2a1-b1a2)
{Расстояние между точками}
d:=sqrt((x1-x2)^2+(y1-y2)^2)
{Расстояние от точки до прямой}
a:=y2-y1
b:=x1-x2
c:=-x1*(y2-y1)+y1(x2-x1)
t:=sqrt(a*a+b*b)
d:=abs((a*x3+b*y3+c)/t)
{Выпуклость много угольников}
L:='выпуклый'
for i:=1 to n do
begin
j:=i+1
k:=j+1
if i=n
then k:=1
m:=i-1
if i=1
then m:=n;
z1:=(x[m]-x[i])*(y[j]-y[i])-(y[m]-y[i])*(x[j]-x[i]);
z2:=(x[k]-x[i])*(y[j]-y[i])-(y[k]-y[i])*(x[j]-x[i]);
if z1*z2<0
then l:='Невыпулый'
end;
{площадь многоугольника}
ymin:=y[1];
for k:= 2 to n do
if ymin >y[k]
then ymin:=y[k];
for k:=1 to n+1 do
y1[k]:=y[k]-ymin;
s:=0;
for k:=1 to n do
s:=s+(x[i+1]-x[i])*(y1[i+1]+y1[i]);
s:=abs(s)/2;
{Cортировка выбором}
for i:=1 to n-1 do
begin
k:=i; max:=a[i];
for j:=i+1 to n do
if a[j]>max then
begin
max:=a[j];
k:=j;
end;
A[k]:=a[i]; a[i]:=maxl;
end;
{Cортировка обменом}
for i:=1 to n-1 do
for j:=1 to n-1 do
if a[j]>a[j+1] then
begin
x:=a[j];
a[j+1]:=a[j];
a[j]:=x;
end;
{Двоичный поиск}
l:=1; r:=n+1; a[n+1]:=x;
while (l begin m:=(r+l) div 2; if aa[m]>x then l:=m+1; else r:=m; end; {Сортировка бинарными вставками} for i:=2 to n do begin r:=i; l:=i; while (l Begin k:=(l+r) div 2; if a[k]>a[i] then l:=k+1; else r:=k; end; k:=r; x:=a[i]; for m:=i downto k+1 do a[m]:=a[m-1]; a[k]:=x; end; {Метод Гауса} uses crt; const n=2; var m : array[0..n,0..n+1] of real; x : array[0..n] of real; i,j,k:integer; a,s:real; begin for j:=0 to n do for i:=0 to n do m[j,i]:=random(4)+1; For k:=0 to n do begin a:=m[k,k]; for i:=0 to n+1 do m[k,i]:=m[k,i]/a; for j:=k to n-1 do begin a:=m[j+1,k]; for i:= 0 to n+1 do m[j+1,i]:=m[j+1,i]-m[k,i]*a; end; end; for k:=n downto 0 do begin x[k]:=m[k,n+1]; for j:=n-1 downto k do x[k]:=x[k]-m[k,j+1]*x[j+1]; end; end. {Дифференцирование} const d=0.0001; x=2; {y=x*x+2} var f,dx:real; begin dx:=x+d; f:=((dx*dx+2)-(x*x+2))/d; writeln(f); end. {Хорда} var x,xk,xk1,a,b:real; function f(x:real):real; begin f:=x*x+x-2; end; begin a:=-3; b:=0; xk1:=a; xk := a - (f(a)*(b-a)) / (f(b)-f(a)); while abs(xk-xk1)>=0.00001 do begin x:=xk1; if f(xk)*f(a)<0 then xk1:=xk-f(xk)*(xk-a)/(f(xk)-f(a)) else xk1:=xk-f(xk)*(b-xk)/(f(b)-f(xk)); xk:=x; end; end. {ИНТЕГРИРОВАНИЕ} {left rect} const x1=1; x2=3; n=1000; {y=x*x+2} var s,y,h,x:real; i:integer; begin h:=(x2-x1)/n; s:=0; x:=x1; for i:=1 to n-1 do begin y:=x*x+2; s:=s+y*h; {!} x:=x+h; end; writeln(s); end. {right rect} const x1=1; x2=3; n=1000; {y=x*x+2} var s,y,h,x:real; i:integer; begin h:=(x2-x1)/n; s:=0; x:=x1; for i:=1 to n-1 do begin {!} x:=x+h; y:=x*x+2; s:=s+y*h; end; writeln(s); end. {middle rect} const x1=1; x2=3; n=1000; {y=x*x+2} var s,y,h,x:real; i:integer; begin h:=(x2-x1)/n; s:=0; x:=x1; for i:=1 to n-1 do begin {!} y:=(x+h/2)*(x+h/2)+2; s:=s+y*h; {!} x:=x+h; end; writeln(s); end. {middle rect} const x1=1; x2=3; n=1000; {y=x*x+2} var s,y1,y2,h,x:real; i:integer; begin h:=(x2-x1)/n; s:=0; x:=x1; for i:=1 to n-1 do begin {!} y1:=x*x+2; y2:=(x+h)*(x+h)+2; s:=s+(y1+y2)*h/2; {!} x:=x+h; end; writeln(s); end. {Простые Итерации} uses crt; var x,f,x0:real; begin clrscr; x:=2; x0:=0; while abs(x-x0)>0.000001 do begin x0:=sqrt(x+2); x:=x0; end; writeln(x0); end. {Касательные} var d,x,xk,xk1,a,b:real; function f(x:real):real; begin f:=x*x+x-2; end; function f1(x:real):real; begin f1:=2*x-1; end; begin a:=-3; b:=0; d:=0.0001; xk:=a; xk1:=b; while abs(xk-xk1)>=d do begin x:=xk1; xk1:=xk-f(xk)/f1(xk); xk:=x; end; end.