36422

Математические модели геометрического проектирования

Лабораторная работа

Информатика, кибернетика и программирование

Для автоматизации процесса построения Rфункции плоского геометрического объекта в виде точечного множества с шагом h можно предложить следующий алгоритм точки принадлежащие объекту отобразить в виде красных точек: А. Тогда по свойству Rфункции имеем Значит в точке с координатами xy рисуем красную точку если Pxy=0. Пример построения поверхности 0уровня Ффункции двух прямоугольников нахождение геометрического места точек касания объектов S1 и S2 1. Тогда поверхность 0уровня Ффункции двух прямоугольников задается четырьмя...

Русский

2013-09-21

312.5 KB

1 чел.

Лабораторная работа 5

Математические модели геометрического проектирования

1. Для автоматизации процесса построения R-функции плоского геометрического объекта в виде точечного множества с шагом h можно предложить следующий алгоритм (точки, принадлежащие объекту, отобразить в виде красных точек):

А. Представить геометрический объект S1 в виде объединения прямоугольников

Для этого предлагается выполнить следующие действия:

1. Построить по заданным координатам вершин линию границы объекта S1

% Начальная и конечная точки ломаной совпадают – замкнутая линия

x1=[0 0 2 2 4 4 0];

y1=[0 1 1 3 3 0 0];

plot(x1,y1)

2. Визуально разбить построенную фигуру на прямоугольники. Вручную записать формулы, описывающие полученные прямоугольники:

,  i=1,2,…,n.

Координаты вершин полученных прямоугольников можно задать в виде матриц XX и YY, в i-той строке которых находятся координаты вершин прямоугольника :

XX=[0 0 2 2 0

   2 2 4 4 2];

YY=[0 1 1 0 0

   0 3 3 0 0];

Б. В некоторой ограниченной области G красным цветом отметить точки, принадлежащие объекту S1.

Пусть, например, .

Пусть координаты (x,y) точек  Pxy области G изменяются с шагом h=0.1 как вдоль оси ОХ, так и вдоль оси ОY.

Тогда, по свойству R-функции имеем

Значит, в точке с координатами (x,y) рисуем красную точку, если Pxy=0.

2. Пример построения суммы Минковского для геометрических объектов.  

Cуммой Минковского Т1Т2  тел Т1 и Т2 евклидового пространства Rn называется множество Т

Т = { t   Rn | t = t1 + t2,  t1  T1, t2  T2 }.

Рассмотрим прямоугольники S1 и S2 :

Тогда точка ,  i=1,2.

Построение суммы Минковского выполним с шагом h.

hold on

for

for

for

for

plot(x1+x2, y1+y2, ‘.’);

end end end end

hold off

3. Пример построения поверхности 0-уровня Ф-функции двух прямоугольников

(нахождение геометрического места точек касания объектов S1 и S2)

1. Пусть размеры прямоугольников соответственно –  и

2. Координаты полюса объекта S1 (параметры размещения объекта S1) - , например, можно полюс разместить в точке (0,0).

Тогда, поверхность 0-уровня Ф-функции двух прямоугольников задается четырьмя отрезками прямых:

 

 

 

 

4. Визуализация прямоугольных объектов

Для прорисовки некоторого множества прямоугольников или других геометрических объектов, например, окружностей, рекомендуется использовать команды, аналогичные следующим командам:

% Начальная и конечная точки ломаной совпадают - прямоугольник

x1=[0 0 2 2 0];

y1=[0 1 1 0 0];

% создать вектор a1() дескрипторов на все графические объекты

a1(1)=line(x1,y1);

axis([-2 2 -1 4]);

pause(0.1)

Анимацию движения прямоугольника вдоль некоторой линии, например, синусоиды, можно выполнить с помощью следующих команд:

% a3,b3 - размеры прямоугольника S3

a3=3; b3=5;

% задать форму границы объекта S3 (полюс находится в (0,0)

% Начальная и конечная точки ломаной совпадают

x3=[-a3 -a3 0 0 -a3];

y3=[-b3 0 0 -b3 -b3];

% траектория движения полюса задается уравнением,

% например, синусоиды

xx=[-5:0.1:5];

yy=2*sin(xx);

% xP3, yP3 - координаты первой точки траектории движения S3

xP3=xx(1); yP3=yy(1);

 

% создать дескриптор на графический объект

s3=line(x3,y3);

axis([-10 10 -10 10]);

pause(0.1)

k=length(xx);

while 1

   % объект S3 перемещается

   % остановка – Ctrl+C

   for i=1:k

       x0=x3+xx(i);

       y0=y3+yy(i);

       set(s3,'XData',x0,'YData',y0);

       pause(0.1);

   end

end

5. Решение задачи линейного программирования

Задачей линейного программирования называется следующая оптимизационная задача: найти минимальное значение функции цели

при условии, что область D описывается следующими условиями:

Например,

x1+3x2  18,

2x1+x2  16,

3x1  21,

x1  0,

x2  0,

f = 2x1+3x2   min

Переменные, с именами соответствующими записи задачи линейного программирования, используются при вызове функций MatLab, а именно,

A и Aeq –матрицы коэффициентов системы уравнений задачи,

b, beq, lb и ub –вектор-столбцы коэффициентов правых частей системы и векторы ограничений переменных x ,

fвектор-столбец коэффициентов функции цели, 

x – результирующий вектор-столбец.

 Для приведенного примера имеем

,  ,  ,  

В MatLab задача линейного программирования решается с помощью функции Linprog:

Синтаксис:

Различные варианты записи правой части вызова функции Linprog:

x = linprog(f,A,b,Aeq,beq)

x = linprog(f,A,b,Aeq,beq,lb,ub)

[x,fval] = linprog(...)

[x,fval,exitflag] = linprog(...)

[x,fval,exitflag,output] = linprog(...)

Различные варианты записи левой части вызова функции Linprog:

  •  x = linprog(f,A,b) находит min f'*x при условии, что A*x <= b.
  •  x = linprog(f,A,b,Aeq,beq) решает указанные выше задачу при условии дополнительного выполнения ограничений в виде равенств Aeq*x = beq. Если нет неравенств, то устанавливается A=[] и b=[].
  •  x = linprog(f,A,b,Aeq,beq,lb,ub) определяет набор нижних и верхних границ для проектируемых переменных х, так что решение всегда находится в диапазоне lb <= x <= ub. Если нет неравенств, то устанавливается Aeq=[] и beq=[].
  •   [x,fval] = linprog(...) возвращает значение целевой функции fun как решение от х: fval = f'*x.
  •   [x,lambda,exitflag,output] = linprog(...) возвращает структурный выход с информацией об оптимизации
  •  [x,fval,exitflag,output,lambda] = linprog(...) Возвращает структурную lambda, чьи поля включают в себя множители Лагранжа как решение от х.

 Для приведенного примера вызов функции имеет вид

[x,p] = linprog(f,A,b,[],[],lb);

x

p

Выходные аргументы.

exitflag

Описывает выходные условия.

  •  > 0 Данная функция сходится к решению по х
  •  0 Максимальное число оценки функции или итерации было превышено
  •  < 0 Функция не сходится к никакому решению

lambda

Структура, которая содержит множители Лагранжа при решении по х (разделенном по типам условий). Поле структуры:

  •  lower Нижние границы lb
  •  upper Верхние границы ub
  •  ineqlin Линейные неравенства
  •  eqlin Линейные равенства

output

Структура, которая содержит информацию об оптимизации. Поле структуры:

  •  iterations Число выполненных итераций
  •  algorithm Используемый алгоритм
  •  cgiterations Число PCG итераций (только для крупно-масштабного алгоритма)

Задания лабораторной работы

Написать файл-функции для решения поставленных далее задач. Параметры объектов S1 , S2 , S3 указаны для каждого варианта.    

Задачи:

1. Построить R-функцию (задать ее графически точками с шагом 0.1) объекта S1, граница которого задана ломаной на плоскости (ломаная определена последовательностью координат вершин границы). Точки, принадлежащие объекту, отобразить в виде красных точек.

2. Построить сумму Минковского для объектов S1 и S2.

3. Построить анимационную модель поверхности 0-уровня Ф-функции двух прямоугольников S2 и S3:

а) отобразить в графическом окне объект S2,

б) теоретически определить параметры поверхности 0-уровня Ф-функции двух прямоугольников S2 и S3,

б) в виде анимации показать все возможные местоположения объекта S3 при его касании объекта S2 , т.е. полюс объекта S3 должен последовательно размещаться в точках моделируемой поверхности.

4. Построить анимационную модель выбора радиостанций для обслуживания передающего аппарата, находящегося в точке Р. Зоны действия радиостанций определены в условии задачи 11 лабораторной работы №1. Точка Р движется вдоль некоторой линии, пересекающей зоны действия станций (уравнение линии выбрать самостоятельно). Когда точка Р находится в зоне действия станции, соответствующая окружность отображается синим цветом, в противном случае – красным.

5. Решить симплекс-методом задачу линейного программирования, указанную в соответствующем варианте.

Варианты:

Координаты вершин объектов S1 , S2 , S3 заданы при последовательном обходе границы объекта по часовой стрелке.

1.

S1:

x

0

0

5

5

8

8

0

y

0

5

5

3

3

0

0

S2:

x

0

0

3

3

0

S3:

x

0

0

2

2

0

y

0

3

3

0

0

y

0

5

5

0

0

2.

S1:

x

0

0

3

3

5

5

0

y

0

2

2

5

5

0

0

S2:

x

0

0

2

2

0

S3:

x

0

0

2

2

0

y

0

3

3

0

0

y

0

4

4

0

0

3.

S1:

x

0

0

5

5

3

3

0

y

0

5

5

3

3

0

0

S2:

x

0

0

1

1

0

S3:

x

0

0

3

3

0

y

0

2

2

0

0

y

0

5

5

0

0

4.

S1:

x

0

0

7

7

5

5

0

y

4

7

7

0

0

4

4

S2:

x

0

0

1

1

0

S3:

x

0

0

5

5

0

y

0

4

4

0

0

y

0

5

5

0

0

5.

S1:

x

0

0

5

5

7

7

9

9

0

y

0

7

7

5

5

8

8

0

0

S2:

x

0

0

2

2

0

S3:

x

0

0

2

2

0

y

0

4

4

0

0

y

0

3

3

0

0

6.

S1:

x

0

0

3

3

7

7

0

y

0

4

4

3

3

0

0

S2:

x

0

0

3

3

0

S3:

x

0

0

2

2

0

y

0

3

3

0

0

y

0

5

5

0

0

7.

S1:

x

0

0

3

3

7

7

0

y

0

4

4

5

5

0

0

S2:

x

0

0

2

2

0

S3:

x

0

0

2

2

0

y

0

3

3

0

0

y

0

4

4

0

0

8.

S1:

x

0

0

8

8

3

3

0

y

0

7

7

3

3

0

0

S2:

x

0

0

1

1

0

S3:

x

0

0

3

3

0

y

0

2

2

0

0

y

0

5

5

0

0

9.

S1:

x

0

0

7

7

4

4

0

y

2

5

5

0

0

2

2

S2:

x

0

0

1

1

0

S3:

x

0

0

5

5

0

y

0

4

4

0

0

y

0

5

5

0

0

10.

S1:

x

0

0

9

9

7

7

5

5

0

y

0

7

7

1

1

5

5

0

0

S2:

x

0

0

2

2

0

S3:

x

0

0

2

2

0

y

0

4

4

0

0

y

0

3

3

0

0

Варианты для задания 5.

1.

5x1-10x2 + 50 0,

-x1+5x2 + 5 0,

9x1+7x2 – 63 0,

x1  0,

x2  0,

Q = 3x1+2x2   min

2.

2x1-5x2 + 10 0,

5x1+8x2 – 40 0,

-x1+7x2 + 7 0,

x1  0,

x2  0,

Q = -x1+2x2   min

3.

3x1-2x2 + 6 0,

-2x1+5x2 + 10 0,

4x1+9x2 – 36 0,

x1  0,

x2  0,

Q = x1-x2   min

4.

3x1+7x2 – 21 0,

2x1-3x2 + 6 0,

-2x1+6x2 + 12 0,

x1  0,

x2  0,

Q = -x1+x2   min

5.

4x1-5x2 + 20 0,

5x1+6x2 – 30 0,

-3x1+4x2 + 12 0,

x1  0,

x2  0,

Q = 4x1-x2   min

6.

3x1-2x2 + 6 0,

-5x1+4x2 + 20 0,

8x1+7x2 – 54 0,

x1  0,

x2  0,

Q = -x1-x2   min

7.

8x1+4x2 – 32 0,

6x1-3x2 + 18 0,

-2x1+3x2 + 6 0,

x1  0,

x2  0,

Q = x1-5x2   min

8.

7x1-5x2 + 35 0,

10x1+8x2 – 80 0,

-3x1+4x2 + 12 0,

x1  0,

x2  0,

Q = 3x1-x2   min

9.

x1+x2  2,

-x1+2x2  4,

x1 +2x2  8,

x1  0,

x2  0,

Q = 2x1-6x2   min

10.

x1+x2  4,

-x1+2x2  2,

x1 +2x2  10,

x1  0,

x2  0,

Q = 2x1-x2   min

PAGE  7


 

А также другие работы, которые могут Вас заинтересовать

79155. Происхождение Вселенной 18.16 KB
  Так краеугольным камнем ее теософии является фраза: Все ведущее к единству есть добро; все ведущее к разъединению есть зло. Всегда ли разъединение есть зло А как быть тогда с разотождествлением добра и злаЧеткое разделение этих категорий и выбор между ними главный принцип зороастрийской религии. С точки зрения зороастризма смешение добра и зла есть искажение божественной истины и любое учение пропагандирующее смешение этих понятий объявляется еретическим подобно тому как манихейское учение искажающее сущность зороастризма и...
79157. Сектоведение как дисциплина 25.13 KB
  Сектоведение как самостоятельная академическая дисциплина по Уставу духовных академий появилась в 1912 г. Сектоведение изучает краткую историю вероучение культ и практику религиозных движений отпадших от православной Церкви или исповедующих идеи осужденные и несогласные с ее догматическим сознанием. Задача Сектоведение имеет Задачу раскрытие православного учения сообразуясь с заблуждениями еретиков. Сектоведение изучает краткую историю вероучение культ и практику религиозных движений отпадших от православной Церкви или исповедующих идеи...
79158. Историко-филологическое определение термина секта 24.74 KB
  Историко-филологическое определение термина секта Существует два мнения о происхождении термина секта: sequor secutus sum sequī следовать за кем-либо в чем-либо; seco secui sectum secre срезать стричь отсекать разделять расщеплять. Слово секта в словарях буквально значит или учение доктрина. Первоначально термин секта никакого оценочного значения в себе не содержал и оскорбляющего значения не нес. Слово секта в классической латыни 1й век использовалось для обозначения образа мыслей образа знаний типа поведения; в...
79159. Католический подход к сектантству 11.34 KB
  Католический подход к сектантству определение секты современный понятийно терминологический аппарат представление о природе сектантства Блж. Иероним секта = ересь но в Новом Завете это направление определенной религиозной мысли или академический термин как у ап. Но в целом термин этот был не определен на Западе и он не нашел себе широко развития но когда западное христианство разделилось то слово секта в разных экклезиологиях термин получил разные понимания. Именно в этот период нами был заимствован этот термин и именно в этом...
79160. Протестантский подход к сектантству 12 KB
  Протестантский подход к сектантству (определение секты, понятийно-терминологический аппарат, представление о природе сектантства, методология противостояния) В протестантском богословии не выработано четких понятий, что есть секта, а что ей не является, т.к. у них нет четкого понимания, что есть Церковь, и где проходят ее границы.
79161. Светский подход к сектантству (М.Вебер, Э.Трѐльч, Р.Нибур) 14.66 KB
  В частности в учебном пособии для студентов МГУ Социология религий автор Гараджа приводится следующее определение и критерии сектантства и церковности. Он предложил свою концепцию в споре католиков и протестантов отказаться от классического подхода понимания религий по вероучению не видеть в сектах только побочную информацию недостойную внимания. Воззрение Трѐльча вызвали возмущение у протестантских богословов но в то же время они оказали влияние на светскую науку Трельч – пионер светской социологии религий. 1 Сектами именуют...
79162. История и идеология антикультового подхода к сектантству (понятийно-терминологический аппарат, представление о природе сектантства 29.61 KB
  Раз человека вовлекли в секту путем манипуляции его сознания то его можно депрограммировать и вывести из этого состояния. Ливтон считал что люди под влиянием физического насилия способны подвергаться перемене сознания промывание мозгов но впоследствии он переменил свое мнение и стал говорить что это происходит под влиянием психологического воздействия. методы промывания мозгов смена сознания. Сейчас депрограммирование устроено другим образом – никого не крадут а предлагают встретиться с консультантом который пытается убедить пациента...
79163. Православный подход к сектантству (понятийно-терминологический аппарат, представление о природе сектантства) 26.9 KB
  в нашем богословии появляется слово секта. Все эти движения с этого времени стали именовать сектами. Они оба сходятся в одном – слово секта было заимствовано в значении ереси.