Реферат: Шпаргалка по численным методам - Refy.ru - Сайт рефератов, докладов, сочинений, дипломных и курсовых работ

Шпаргалка по численным методам

Рефераты по математике » Шпаргалка по численным методам

{кофф линейноного уавнения}


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<r) do 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<r); 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.