Помощь в учёбе, очень быстро...
Работаем вместе до победы

Разработка математической модели на основе описанных методов

Лабораторная работаПомощь в написанииУзнать стоимостьмоей работы

Метод 1. Метод заключается в том, что бы найти наименьший радиус окружности с помощью последовательного соединения точек с одной, а затем проделывания этого с каждой из точек множества. Затем, с помощью формулы нахождения расстояния между двумя точками. Из данного множества точек можно провести только одну окружность с минимальным радиусом, проходящей через три точки множества. Отсюда следует… Читать ещё >

Разработка математической модели на основе описанных методов (реферат, курсовая, диплом, контрольная)

Цель работы: Получить навыки описания метода решения математической модели на примере решения задач аналитической геометрии.

Задание: 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

Вывод

' dkНаименьший радиус окружности!'

Если (dk

Вывод

' 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

writeln ('dk i dl-наименьший радиус окружности') ;

if (dk

writeln ('dk i dj-наименьший радиус окружности');

if (dk=dj) and (dk=dl) then

writeln ('dk i dj i dl-наименьший радиус окружности');

end;

end;

end;

end;

end;

readLn;

end.

Экранные формы:

Вывод:

В ходе лабораторной работы я изучил навыки описания метода решения математической модели на примере решения задач аналитической геометрии.

Показать весь текст
Заполнить форму текущей работой