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


 

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

3522. Визначення параметрів роботи системи запалювання за допомогою стробоскопу 305 KB
  Визначення параметрів роботи системи запалювання за допомогою стробоскопу Методичні вказівки для виконання лабораторної роботи “Визначення параметрів роботи системи запалювання за допомогою стробоскопу”;з курсу “Учбовий практи...
3523. Основные виды топлива 55 KB
  Вся история развития человечества связана с получением и использованием энергии. С древнейших времен люди научились использовать различные виды топлива для обогрева жилища и приготовления еды. В более поздние периоды тепловую энергию использовали дл...
3524. Промежуточная продукция и ВПН 33.42 KB
  В экономике наблюдаются процессы, имеющие основное и центральное в ней значение. Это - непрекращающееся производство продукции на национальном уровне, бесконечное создание и пересоздание богатства, которым страна наполняет, обновляет и расш...
3525. Коррозия металлов 48 KB
  Коррозия металлов. Цели. 1.Познакомиться с процессом коррозии с водородной деполяризацией. 2. Познакомиться с процессом коррозии с кислородной деполяризацией. 3. Рассчитать термодинамическую вероятность процессов коррозии с водородной и с кислородно...
3526. Типы сварочных работ. Типы сварок 71.5 KB
  Сваркой называют технологический процесс получения механически неразъемных соединений, характеризующихся непрерывностью структур – непрерывной структурной связью. Это технологический процесс, с помощью которого изготавливаются все основные конс...
3527. История экономических учений 86 KB
  Введение Своего высшего развития классическая буржуазная политическая экономия достигла в трудах британских ученых Адама Смита и Давида Рикардо, поскольку Великобритания была в тот период самой передовой в экономическом отношении страной. Она облада...
3528. Исследование движения тел в диссипативой средде 57.5 KB
  Исследование движения тел в диссипативой средде Цель работы Исследование процессов рассеяния энергии в диссипативной системе на примере измерения скорости движения тела в жидкой среде, определение основных характеристик диссипативной системы. ПРИБОР...
3529. Исследование свободных колебаний пружинного маятника 36 KB
  Исследование свободных колебаний пружинного маятника Цель работы: исследование свободных колебаний пружинного маятника. МЕТОД ИЗМЕРЕНИЙ: прямые измерения числа колебаний за определенный промежуток времени, а также измерение амплитуды колебания позво...
3530. Права граждан Европейского Союза 116 KB
  Первые договоры о создании Европейских Сообществ, подписанные в 1951 и 1957 гг., означали старт интеграции в экономической сфере шести стран Европы – Франции, Германии, Италии, Нидерландов, Бельгии и Люксембурга. Данные договоры содержали и часть вопросов социальной защиты, однако они в большей степени носили декларативный характер. Явный приоритет среди социальных прав отдавался праву на труд.