Ошибка использования четырехугольника в Matlab - PullRequest
0 голосов
/ 01 марта 2012

У меня есть анонимная функция в matlab: f=@(x) x/(1+x^4).Я хочу интегрировать его от 0 до 1 с квадратором, но по какой-то причине mpower жалуется, что он не может принимать x^4, потому что «Входные данные должны быть скалярной и квадратной матрицей».Если я заменю x^4 на x*x*x*x, я получу «Ошибка при использовании ==> mtimes Размеры внутренней матрицы должны совпадать».Вот полный вывод ошибок.

??? Error using ==> mpower
Inputs must be a scalar and a square matrix.

Error in ==> intapprox>@(x)x/(1+x^4) at 4
f=@(x) x/(1+x^4);

Error in ==> quad at 77
y = f(x, varargin{:});

Error in ==> intapprox at 27
area = quad(f,0,1);

1 Ответ

3 голосов
/ 01 марта 2012

Используйте f=@(x) x./(1+x.^4);, т. Е. ./ и .^, так как вы не хотите делать матричное деление и мощность. Тогда я получаю

>> area = quad(f,0,1)
area =

    0.3927

Что соответствует аналитическому значению числа пи / 8.

...