2015-05-13 4 views
0

Я использую contourf для создания графика контура для 2 переменных функций.Объем под поверхностью контура в matlab

Моя функция Z = f (x, y).

Я создаю x и y через функцию meshgrid в matlab и генерирую значения для Z, а затем построил контур, используя contour(x,y,z).

Я хочу, чтобы иметь возможность рассчитать объем под этим сгенерированным контуром. Кто-нибудь может помочь?

Спасибо заранее

+0

площадь или объем? В названии и вопросе упоминается обратное –

+0

Извините. Объем нет. Я тоже в сообщении –

+2

Вы можете использовать ['integral2'] (http://www.mathworks.com/help/matlab/ref/integral2.html) для интеграции' z = @ (x, y) f (x, y) 'над областью, которую вы построили. – TroyHaskin

ответ

1

не могли бы вы просто использовать интегральное приближение как Риман сумму? Предполагая равномерное расстояние между й и у что-то вроде этого должно работать

delta_x = x(2) - x(1); 
delta_y = y(2) - y(1); 
vol = sum(Z(:)) * delta_x * delta_y; 

Это не будут EXACT объема, но приближение. Поскольку вы знаете свою функцию, вы получите более точный ответ, выполнив интеграцию функции. Но если вы не знаете эту функцию, вы бы использовали этот метод или любой другой численное интегрирование метода.

Из исчисления мы знаем, что фактический интеграл только Рейман сумма где ширина каждого интервала бесконечно мала, так что это должно быть допустимым приближением

+0

Я не уверен. Моя поверхность изогнута, потому что функция включает в себя экспоненциальные и линейные члены, поэтому я немного запутался –

+0

Выход функции 'z' может быть любой формы. Пока ваши x и y имеют равномерный интервал. означающее 'x (n) - x (n-1) == x (k) - x (k-1)' для всех 'n и k', где' n! = k и n, k - целые числа, то же самое было бы пойдите для y. В основном этот метод помещает куб шириной 'delta_x' length' delta_y' и height 'z' при каждом значении в z и добавляет их все вместе для создания' vol' – andrew

+0

, поэтому ваше предложение - найти значение функции Z на всех n значения x и y. Затем переходите к суммированию всего и умножьте его на delta x и delta y правильно[email protected] –

Смежные вопросы