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


 

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

52003. Групи слів за значенням: омоніми, синоніми, антоніми (загальне ознайомлення). 57.5 KB
  Групи слів за значенням: омоніми синоніми антоніми загальне ознайомлення. Мета уроку: поглибити знання учнів про групи слів за значенням; ознайомити їх з омонімами синонімами антонімами навчити школярів правильно застосовувати їх у текстах знаходити у реченнях доречно використовувати у мовленні; виховувати інтерес до усної народної творчості. Групи слів за значенням Групи слів Звукова форма Значення Приклади Омоніми Однакова зовсім різні Ласка тварина ласка матері Синоніми різна однакові або хуртовина близькі заметіль Антоніми...
52005. Буквы о - а в корне –гор- -гар- 53.5 KB
  Тип урока: изучение нового материала Ход урока 1. Мобилизирующий этап Цель: вспомнить правило с чередующими гласнымилаг лож раст рос кас кос; умение самостоятельно делать выводы сформулировать тему урока назвать цель урока обучение русскому языку средствами субъективизации Предпол.Формулирование темы и цели урока Назовите слова выделенные из каждого ряда.