трапециевидный интеграл Matlab - PullRequest
0 голосов
/ 29 ноября 2011

Я хочу использовать вместо команды интеграции с Matlab базовую, созданную самостоятельно. У вас есть идея, как исправить ошибку? Если я использую команду Quad Matlab, мой алгоритм работает хорошо, но когда я пытаюсь использовать свою собственную созданную интегральную функцию, что неудивительно, она не работает :(

M-файл:

function y = trapapa(low, up, ints, fun)
 y = 0;
    step = (up - low) / ints;
    for j = low : step : up
        y = y + feval(fun,j);
    end
    y = (y - (feval(fun, low) + feval(fun, up))/2) * step;

Средний алгоритм:

clear;
x0=linspace(0,4,3);
y=linspace(0,2,3);
for i=1:length(x0)
for j=1:length(y)
x(i,j)=y(j)+x0(i);
alpha=@(rho)((5-2*x(i,j)).*exp(y(j)-rho))./2;
%int(i,j)=quad(alpha,0,y(j))
int(i,j)=trapapa(alpha,0,y(j),10)
end
end

1 Ответ

0 голосов
/ 29 ноября 2011

Вы не следуете определению вашей функции в скрипте. Параметр fun (переменная alpha) должен быть последним.

Попробуйте int(i,j)=trapapa(0,y(j),10,alpha)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...