БлогNot. Mathcad: попадание точки в область и уравнение прямой по 2 точкам :)

Помощь дата->рейтинг Поиск Почта RSS канал Статистика nickolay.info Домой

Mathcad: попадание точки в область и уравнение прямой по 2 точкам :)

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

написать функцию Mathcad, определяющую попадание точки на плоскости в некоторую область
написать функцию Mathcad, определяющую попадание точки на плоскости в некоторую область

Расчёт может зависеть от одного или нескольких дополнительных параметров (в нашем случае - R), которые можно передать как дополнительные аргументы функции или просто определить как переменные.

Задачу будет решать функция F(x,y) следующего вида:

F(x,y):=if(0≤x≤2⋅Rʌ0≤y≤2⋅Rʌx2+y2≥R2vx≤0ʌy≤0ʌy≥a⋅x+b,1,0)

Откуда она взялась?

Так как нас интересует только факт попадания или непопадания точки с координатами (x,y) в область, общий шаблон функции будет иметь вид

F(x,y):=if(условие,1,0)

то есть, при истинном условии возвращается 1, а при ложном 0. Осталось написать условие. Не пересекающихся областей на рисунке две, конкретная точка может попадать только в одну из них, поэтому условие имеет общий вид

область1vобласть2

, где операция логического "или" (or), обозначаемая в Mathcad символом "v", вводится соответствующей кнопкой панели инструментов Boolean (Логический), там же, кстати, находятся и остальные значки отношений, такие как ≤, ≥ и т.п.

Примем за область1 квадрат со стороной 2⋅R, из которого вырезана четвертушка окружности. Попадание точки в "чистый" квадрат можно записать условием

0≤x≤2⋅Rʌ0≤y≤2⋅R

Существенно, что ограничения на координаты x и y точек, образующих квадрат, должны выполняться одновременно, поэтому они объединены операцией логического "и" (and), которая в Mathcad обозначается "ʌ" и вводится с той же панели Boolean. Точка, попадающая в квадрат, не должна при этом лежать внутри окружности радиуса R с центром в начале координат, учтём это дополнительным условием

x2+y2≥R2

которое свяжем той же операцией "ʌ" с остальными двумя ограничениями.

Теперь разберёмся с областью 2. Отсечь третью координатную четверть, в которой находится наша треугольная область, легко условием вида x≤0ʌy≤0, а чтобы получить условие, записанное в форме y≥a⋅x+b, нужно вывести уравнение прямой y=a⋅x+b, то есть, найти коэффициенты a, b прямой, проходящей через точки с координатами (-2⋅R,0), (0,-2⋅R). Тогда все точки, отвечающие условию y=a⋅x+b, будут лежать на прямой, условие y<a⋅x+b описывает полуплоскость ниже прямой, а y>a⋅x+b - выше. Мы везде ставим знаки ≤и ≥ вместо < и >, так как включаем в отсекаемые области их границы.

Как в Mathcad найти уравнение прямой, проходящей через 2 точки? Способов, по крайней мере, два.

1. Занести координаты x, y двух точек в соответствующие векторы, затем вызвать стандартную функцию slope ("наклон") для вычисления коэффициента a, а функцию intercept ("отсечка") для получения коэффициента b:

вычисление коэффициентов прямой, проходящей через 2 точки, стандартными функциями Mathcad
вычисление коэффициентов прямой, проходящей через 2 точки, стандартными функциями Mathcad

Здесь для удобства введена нумерация элементов векторов с единицы вместо принятого по умолчанию нуля (оператор ORIGIN:=1).

2. Почитать всё вручную. Так как прямая проходит через две заданные точки с координатами (x1,y1) и (x2,y2), имеем систему двух уравнений с двумя неизвестными, решаемую относительно неизвестных a, b:

a*x1+b=y1
a*x2+b=y2

Вычитая из второго уравнение первое, получаем

a = (y2-y1)/(x2-x1)

после чего находим b=y1-a*x1 или y2-a*x2. Это работает при любых x1≠x2, а если x1=x2, то уравнение прямой превращается просто в x=const.

"ручное" вычисление в Mathcad коэффициентов прямой, проходящей через 2 точки
"ручное" вычисление в Mathcad коэффициентов прямой, проходящей через 2 точки

Наконец, такую область легко изобразить на контурной диаграмме (верхнее меню Insert - Graph - Contour plot или Вставка - График - Контурный). Просто подготовим таблицу значений функции F(x,y) с помощью стандартного метода CreateMesh и вставим диаграмму:

графическое изображение области на плоскости с помощью контурной диаграммы в Mathcad
графическое изображение области на плоскости с помощью контурной диаграммы в Mathcad

 Скачать архив .zip с этим документов .xmcd Mathcad 14/15 (17 Кб)


теги: числа учебное графика mathcad

26.03.2017, 17:12; рейтинг: 2355

  свежие записипоиск по блогукомментариистатистика

Наверх Яндекс.Метрика
© PerS
вход