Пример: Транспортная логистика
Я ищу:
На главную  |  Добавить в избранное  

Математика /

Метод "Крамера"



Скачать реферат


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

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*z20

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*z2y[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 (lx then

l:=m+1;

else

r:=m;

end;

{Сортировка бинарными вставками}

for i:=2 to n do

begin

r:=i;

l:=i;

while (la[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.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.




Copyright © 2005—2007 «Mark5»