Цель работы: Получить навыки описания метода решения математической модели на примере решения задач аналитической геометрии.
Задание: 1) Согласно заданному варианту описать методы решения задачи.
2) На основе описанных методов разработать математическую модель.
Задача: Задано множество точек, найти параметры окружности минимального радиуса, проходящие через три точки множества.
Ход работыІ)Математическая постановка задачи:
1) Найти наименьший радиус окружности по формуле: i : = 1…n
D=, где ;
j : = 1… 2)D1,D2,D3- радиусы окружности;
3) XY, XY, XY, XY- координаты точек множества;
4) D=-формула нахождения расстояния между двумя точками;
5)
-система уравнения или неравенства;
6)
-совокупность уравнения или неравенства;
7) -знак больше
-знак меньше
=-знак равно;
8) A, B, C, E- некоторые точки с определенными координатами
ІІ) Описание методов решения:
Метод 1. Метод заключается в том , что бы найти наименьший радиус окружности с помощью последовательного соединения точек с одной, а затем проделывания этого с каждой из точек множества. Затем, с помощью формулы нахождения расстояния между двумя точками
(D=),необходимо вычислить длины получившихся отрезков. После вычисления отрезки необходимо сравнить между собой. В результате если два отрезка, выходящие из одной точки, равны - это и есть радиусы окружности. Но из условия, поставленные задачей, необходимо найти минимальный радиус окружности проходящей через три точки множества. Если при сравнении несколько пар одинаковых отрезков - необходимо найти наименьшую пару – это и будет минимальный радиус окружности. (Рис.№1)
Рис.№1
Метод 2.Второй метод заключается в том, что бы искать минимальный радиус окружности при помощи соединения множество точек между собой, и в результате получение множество геометрических фигур ( в данном случае геометрические фигуры – треугольники). Затем необходимо найти расстояние сторон треугольника. Для этого возьмем формулу нахождения расстояния между двумя точками (D=). В случаи, если стороны выходящие из одной точки равны – это и есть радиусы окружности, так как через равные отрезки, выходящие из одной точки можно провести окружность с центром точки соединения этих отрезков. В случае, если в конечном результате вычисления несколько равных сторон, выходящих из одной точки, необходимо найти минимальный радиус окружности. Минимальным радиусом будут стороны с наименьшей длиной (рис.№ 2).
ІІІ) Анализ метода решения:
Первый метод более эффективен, чем второй, так как требует меньшее количество арифметических расчетов, и в памяти будет занимать меньшее количество ресурсов.
ІY) Формализация выбранного метода:
1) D1=
D2=
D3=;
2) Если D1=D3, то выполняется пункт 3, иначе пункт 4;
3) D1, D3 - радиусы окружности;
4) Если D2=D3, то выполняется пункт 5, иначе пункт 6;
5) D2, D3 – радиусы окружности;
6) Если D1=D2 , то выполняется пункт 7, иначе пункт 8;
7) D1, D2 – радиусы окружности;
8) Если D1=D2 , и/или D2=D3, и/или D1=D3, то выполняется пункт 9;
9) В случаи пункта 8 необходимо сравнить на меньший радиус:
D1=D2 D1=D3 D2=D3
D1D3 D1D2 D2D1
D1D3 D1D2 D2D1
D2D3 D3D2 D3D1
D2D3 D3D2D1 D3D1
10) Затем необходимо повторить это с оставшимися точками пока не перегенирируются все точки.
YІ. Геометрическое решение задачи
A= (-5;0);
B= (-3;2);
E= (0;1);
C= (-3;-2), так как D=, отсюда
1) AB=
AE=
AC=
Так как AB=AC, ABAE, ACAE, значит АВ и АС- радиусы окружности с центром в точке А.
2) АВ=
ЕВ=
СВ=
Так как АВЕВ, ЕВСВ, АВСВ, значит АВ, ЕВ, СВ- не являются радиусами окружности и точка В- не является центром окружности.
3) АЕ=
СЕ=
ВЕ=
Так как АЕСЕ, СЕВЕ, АЕВЕ, значит АЕ, СЕ, ВЕ- не являются радиусами окружности и точка Е- не является центром окружности.
4) АС=
ЕС=
СВ=
Так как АСЕС, ЕССВ, АССВ, значит АС, ЕС, СВ- не являются радиусами окружности и точка С- не является центром окружности.
Из данного множества точек можно провести только одну окружность с минимальным радиусом, проходящей через три точки множества. Отсюда следует, что минимальным радиусом являются отрезки АВ и АС.
Алгоритм реализации:
выполнять
ввод
n
пока ((n>3) и (n<20))
для i:=1..m
Вывод
‘Введите координаты’,I,’-ой точки.’
Ввод
D[i].x, D[i].y
Вывод
‘D[‘,i,’].x =’,D[i].x;
‘D[‘,i,’].y =’,D[i].y;
для i:=1..(n-3)
для k:=i+1..(n-2)
для l:=j+1..(n-1)
для j:=l+1...n
dk:= (D [i].x-D [k].x)²+(D [i].y-D [k].y)²;
dl:= (D [i].x-D [l].x)²+( D[i].y-D [l].y)² ;
dj= (D [j].x-D [j].x)²+(D [j].y-D [j].y)² ;
Если (dk=dl) или (dk=dj) тогда
Вывод
‘Точка ',i,'- является центром окружности!'
Иначе
Вывод
'Точка ',i,' не является центром окружности!'
Если (dk=dl) или (dj=dl) тогда
Вывод
' dl- возможный радиус окружности!'
Иначе
Вывод
'dl-не образует радиус..'
Если (dk=dj) или (dk=dl) тогда
Вывод
' dk- возможный радиус окружности!'
Иначе
Вывод
'dk-не образует радиус.. '
Если (dj=dl) или (dj=dk) тогда
Вывод
' dj- возможный радиус окружности!’
Иначе
Вывод
' dj-не образует радиус’
если (dk<dj) и (dk=dl) то
Вывод
' dk- Наименьший радиус окружности!'
Если (dk<dl) и (dk=dj) то
Вывод
' dl- Наименьший радиус окружности!'
Если (dk=dj) и (dl=dk) тогда
Вывод
' dk и dj и dl- Наименьший радиус окружности!'
Листинг программы:
Program alex;
uses crt;
Type Point = Record
x,y : real;
End;
pnt = Array [1..20] Of Point;
var
q, nstr,cstr:string;
c:char;
D:pnt;
l,n,i,k,j,code:integer;
di,dj,dk,dl,Dmin:real;
begin
clrscr;
writeln(' Донецкий государственный институт искусственного интеллекта');
writeln;
writeln;
gotoxy(40,6);
write('Кафедра програмного обеспечения');
gotoxy(40,7);
writeln(' интеллектуальных систем');
gotoxy(19,10);
writeln(' Лабораторная работа #2');
writeln(' по курсу:"Алгоритмизация вычислительных процессов"');
writeln(' тема:"Разработка алгоритмов и программы"');
gotoxy(60,20);
write('Выполнил:');
gotoxy(60,21);
write(‘');
gotoxy(60,22);
write();
writeln;
writeln;
writeln;
write('Нажмите любую клавишу');
readkey;
clrscr;
writeln(' Задание: Задано множество точек. Найти параметры окружности');
writeln('минимального радиуса проходящей через три точки множества.');
gotoxy(1,25);
write('Нажмите любую клавишу...');
readkey;
clrscr;
repeat
Writeln('Введите количество точек');
readln(nstr);
writeln;
val(nstr,n,code);
if (code<>0) then
begin
clrscr;
writeln('Это не число! Попробуйте еще раз.');
n:=5;
end;
if not( n in[3..20]) then
begin
clrscr;
code:=1;
writeln('Число не находится в заданном диапазоне! Попробуйте еще раз')
end;
until (code=0);
clrscr;
for i:=1 to n do
begin
repeat
write('Введите координату Х ',i,'-ой точки: ');
readln(cstr);
val(cstr,D[i].x,code);
if (code<>0) then
begin
writeln('Это не число! Попробуйте еще раз.');
continue
end;
clrscr;
if ((D[i].x>100) or (D[i].x<-100)) then
begin
clrscr;
writeln('Диапазон координат точек от -100 до 100!');
code:=1;
continue
end;
until (code=0);
repeat
write('Введите координату Y ',i,'-ой точки: ');
readln readln val(cstr,D[i].y,code);
if (code<>0) then
begin
clrscr;
writeln('Это не число! Попробуйте еще раз.');
code:=1;
continue
end;
clrscr;
if ((D[i].y>100) or (D[i].y<-100)) then
begin
clrscr;
writeln('Диапазон координат точек от -100 до 100!');
code:=1;
continue
end;
until (code=0);
end;
for i:=1 to n do
begin
writeln('D[',i,'].x=',D[i].x);
writeln('D[',i,'].y=',D[i].y);
end;
for i:= 1 to (n-3) do
for k:= i+1 to (n-2) do
for l:= k+1 to (n-1) do
for j:= l+1 to n do
begin
begin
begin
begin
dk:=Sqrt(Sqr(D[i].x-D[k].x)+Sqr(D[i].y-D[k].y));
dl:=Sqrt(Sqr(D[i].x-D[l].x)+Sqr(D[i].y-D[l].y));
dj:=Sqrt(Sqr(D[i].x-D[j].x)+Sqr(D[i].y-D[j].y));
Dmin:=dk;
begin
if (dk=dl) or (dj=dl) then
writeln ('',dl:7:2,' dl-возможный радиус окружноости')
else
writeln ('dl-не образует радиус');
if (dk=dj) or (dk=dl) then
writeln ('',dk:7:2,' dk-возможный радиус окружности')
else
writeln ('dk-не образует радиус');
if (dj=dl) or (dj=dk) then
writeln ('',dj:7:2,' dj-возможный радиус окружности')
else
writeln ('dj-не образует радиус');
if (dk=dl) or (dk=dj) then
writeln ('Точка ',i,' является центром окружности')
else
writeln ('Точка ',i,' не является центром окружности!');
end;
begin
if (dk<dj) and (dk=dl) then
writeln ('dk i dl-наименьший радиус окружности') ;
if (dk<dl) and (dk=dj) then
writeln ('dk i dj-наименьший радиус окружности');
if (dk=dj) and (dk=dl) then
writeln ('dk i dj i dl-наименьший радиус окружности');
end;
end;
end;
end;
end;
readLn;
end.
Экранные формы:
Вывод:
В ходе лабораторной работы я изучил навыки описания метода решения математической модели на примере решения задач аналитической геометрии.
Похожие работы
... Поставленная задача должна решаться одним из универсальных (не зависящих от целочисленных значений коэффициентов) методов целочисленного линейного программирования. 2. Разработка математической модели и практическая реализация системы автоматического составления расписания 2.1. Математическая модель расписания в вузе Построим математическую модель расписания в вузе в терминах линейного ...
... и ФЧХ. 3) Проанализировать зависимость вида переходного процесса от параметров схемы. 2. Расчет переходного процесса на основе численных методов решения дифференциальных уравнений 2.1 Разработка математической модели и её решение с использованием метода пространства состояний При рассмотрении физической системы как объекта исследования или проектирования целесообразно распределить все ...
... поколений. Естественно, особенно они заметны, если популяция находится в изоляции, т.е. отсутствует миграция генов извне. Известны сообщества такого рода в человеческом обществе. Часть 2 Математические модели нейронных систем Изучение нейронных систем -одно из самых романтических направлений научных исследований, поскольку нейронные системы присущи как человеку, так и животным. Самая ...
... показывают: Таким образом, . Совершенно аналогично: , , . В равновесных состояниях частоты гамет являются произведениями частот соответствующих генов. Верно и обратное утверждение. Часть 2 Математические модели нейронных систем Изучение нейронных систем -одно из самых романтических направлений научных исследований, поскольку нейронные системы присущи как человеку, так и животным. Самая ...
0 комментариев