2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Интеграл по области треугольника
Сообщение28.09.2008, 10:18 
Всех приветствую,

Помогите разобраться вот в чем:
даны координаты (на плоскости) трех вершин треугольника X_i = [x_i,y_i], i=1,2,3. Нужно проинтегрировать функцию f(x,y) в области этого треугольника (нужен самый общий вид).

И еще нужна характеристическая функция треугольника, т.е. функция, которая равна 1 в области треугольника и равная 0 вне его (опять же используя координаты вершин) .

 
 
 
 
Сообщение28.09.2008, 10:27 
По треугольнику с вершинами $(0,0)$, $(0,1)$ и $(1,0)$ проинтегрировать сможете? Тогда смело сводитесь к нему аффинным преобразованием, и множьте интеграл на его определитель.

alxkolm писал(а):
нужна характеристическая функция треугольника
Что значит "нужна"? Она же и так есть. :?

 
 
 
 
Сообщение28.09.2008, 10:42 
Характеристическая функция -- например:

$\chi(x,y)=(l_{AB}(x,y)\cdot l_{AB}(x_C,y_C)>0)\&(l_{BC}(x,y)\cdot l_{BC}(x_A,y_A)>0)\&(l_{CA}(x,y)\cdot l_{CA}(x_B,y_B)>0)$

(запись в стиле Матлаба; функция $l_{AB}(x,y)=\alpha x+\beta y+\gamma$ -- это левая часть уравнения прямой $AB$). Или проще -- через равенство знаков трёх векторных произведений пар векторов $\overrightarrow{AM}$, $\overrightarrow{BM}$ и $\overrightarrow{CM}$, где $M(x,y)$.

Насчёт общей формулы для интегрирования непонятно; формальный ответ: умножить на характеристическую функцию и проинтегрировать по прямоугольнику.

 
 
 
 
Сообщение28.09.2008, 10:45 
Аватара пользователя
ewert в сообщении #147051 писал(а):
Насчёт общей формулы для интегрирования непонятно; формальный ответ: умножить на характеристическую функцию и проинтегрировать по прямоугольнику.
Ответ неверен. Прямоугольник может не содержать части треугольника.

 
 
 
 
Сообщение28.09.2008, 10:51 
а может и содержать. Если, конечно, программировать всё аккуратно.

 
 
 
 
Сообщение28.09.2008, 13:17 
спасибо AD за гениальную идею.
спасибо ewert за характеристическую функцию в векотрном виде (еще проверю :) )

скоро вернусь...

Добавлено спустя 1 час 37 минут 54 секунды:

Цитата:
Или проще -- через равенство знаков трёх векторных произведений пар векторов $\overrightarrow{AM}$, $\overrightarrow{BM}$ и $\overrightarrow{CM}$, где $M(x,y)$.


не работает... (с учетом того, что для векторного произведения нужны вектора в трехмерном пространстве я дополнял третью координату нулём).

 
 
 
 
Сообщение28.09.2008, 13:30 
Что значит "не работает"? Имелось в виду, что

$\chi(x,y)=\left((\overrightarrow{AM}\times\overrightarrow{BM}>0)=(\overrightarrow{BM}\times\overrightarrow{CM}>0)=(\overrightarrow{CM}\times\overrightarrow{AM}>0)\right)$

(внешние скобки -- над логическими операциями, порядок -- именно циклический, и третья координата, конечно, дополняется нулём)

 
 
 
 
Сообщение28.09.2008, 15:13 
ewert писал(а):
Имелось в виду, что

$\chi(x,y)=\left((\overrightarrow{AM}\times\overrightarrow{BM}>0)=(\overrightarrow{BM}\times\overrightarrow{CM}>0)=(\overrightarrow{CM}\times\overrightarrow{AM}>0)\right)$


Вот так работает... спасибо. А как получил эту формулу? где почитать? или в каком направлении думать?

 
 
 
 
Сообщение28.09.2008, 15:47 
Да понятия не имею, где почитать. Просто когда-то очень давно нас на программировании заставляли решать такую задачу -- определить, находится ли точка внутри многоугольника (не помню, меня или кого другого, но пару разных алгоритмов я тогда сочинил). И при подсчёте интегралов методам Монте-Карло требуется нечто подобное. И при минимизации внутри области методом штрафных функций -- тоже. В общем, задача на слуху.

 
 
 [ Сообщений: 9 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group