Автор: Пользователь скрыл имя, 24 Марта 2011 в 08:19, лабораторная работа
Цель работы: Решить системы нелинейных алгебраических уравнений.
Задание: графически и численно решить систему нелинейных алгебраических уравнений, на примере поиска точек пересечения двух функций.
SetColor(Color);
with Rect do
for i:=1 to Width do
Rectangle(Origin.X-i, Origin.Y-i,
Origin.X+Size.X+i, Origin.Y+Size.Y+i);
SetColor(OldColor);
end;
end.
Второй модуль:
{*********** Процедуры и функции для работы с графикой *************}
unit Draw2;
interface
uses consts,types,graph,crt,
{ Нарисовать оси }
procedure DrawAxis(var Rect:trect;Xo,Yo,Color:word);
{ Рисование граничных значений по углам рамки }
procedure DrawBounds(Xmin,Xmax,Ymin,
{ Рисование координатной сетки }
procedure DrawGridLines(NgrX,NgrY:word;
{ Вывод координат точек пересечения }
procedure WriteCoord(var RootMas:Troot;K:word;var Rect:trect;Color:word);
implementation
{ Нарисовать оси }
procedure DrawAxis(var Rect:trect;Xo,Yo,Color:word);
var oldcolor:word;
begin
oldColor:=GetColor;
setcolor(color);
line(OriginX,Yo,OriginX+Nx,
line(Xo,OriginY,Xo,OriginY+
SetColor(OldColor);
end;
{ Рисование граничных значений по углам рамки }
procedure DrawBounds(Xmin,Xmax,Ymin,
var a:string;
begin
outtextxy(rect.origin.x,
rect.origin.y+rect.size.y+15,
outtextxy(rect.origin.x+rect.
rect.origin.y+rect.size.y+15,
str(Ymin:6:2,a);
outtextxy(rect.origin.x-50,
rect.origin.y+rect.size.y,a);
str(Ymax:6:2,a);
outtextxy(rect.origin.x-50,
end;
{ Рисование координатной сетки }
procedure DrawGridLines(NgrX,NgrY:word;
var oldcolor:word;
dx,dy,x0,y0,x1,y1:word;
begin
setcolor(color);
dx:=round(rect.size.x/ngrx);
dy:=round(rect.size.y/ngry);
y1:=rect.origin.y+rect.size.y;
x0:=rect.origin.x;
while x0<=(rect.origin.x+rect.size.
begin
line(x0,rect.origin.y,x0,y1);
x0:=x0+dx;
end;
y0:=rect.origin.y;
x1:=rect.origin.x+rect.size.x;
while y0<=(rect.origin.y+rect.size.
begin
line(rect.origin.x,y0,x1,y0);
y0:=y0+dy;
end;
end;
{ Вывод координат точек пересечения }
procedure WriteCoord(var RootMas:TRoot; K:word; var Rect:trect; Color:word);
var a,i: integer; b:real; c:string;
begin
outtextxy(rect.origin.x+rect.
outtextxy(rect.origin.x+rect.
outtextxy(rect.origin.x+rect.
a:=40;
for i:=1 to k do
begin
b:=rootmas[i].x;
str(b:6:2,c);
outtextxy(rect.origin.x+rect.
rect.origin.y+20,c);
a:=a+50;
end;
a:=40;
for i:=1 to k do
begin
b:=rootmas[i].y;
str(b:6:2,c);
outtextxy(rect.origin.x+rect.
rect.origin.y+40,c);
a:=a+50;
end;
end;
end.
Результат программы:
График
функций:
Вывод: была составлена программа для графического и численного решения системы нелинейных алгебраических уравнений, на примере поиска точек пересечения двух функций.
Информация о работе Решение систем нелинейных алгебраических уравнений