Math 梯形规则

Math 梯形规则,math,matlab,Math,Matlab,我想将“\int{0}^{1}(exp(-int{0}^{y}f(x)dx))dy”与我的基本梯形算法集成。我收到一个错误声明,但我应该将g定义为一个函数。你知道怎么做吗? 谢谢你的回答 function y = trapapadbl(low1, up1,low2,up2,intstep1,intstep2,f) g = 0; step1 = (up1 - low1) / intstep1; step2 = (up2 - low2) / intstep2; for j = low1 : ste

我想将“\int{0}^{1}(exp(-int{0}^{y}f(x)dx))dy”与我的基本梯形算法集成。我收到一个错误声明,但我应该将g定义为一个函数。你知道怎么做吗? 谢谢你的回答

function y = trapapadbl(low1, up1,low2,up2,intstep1,intstep2,f)
g = 0;
step1 = (up1 - low1) / intstep1;
step2 = (up2 - low2) / intstep2;

for j = low1 : step1 : up1
    g = g + feval(f,j);
end
g = @(y)(g - (feval(f, low1) + feval(f, up1))/2) * step1;
for i = low2 : step2 : up2
    y= y + feval(g,i);
end
y= (y - (feval(g, low2) + feval(g, up2))/2) * step2;
如果不努力理解代码(!),错误是
y
从未初始化。只有当
y
有值时,才能向其添加任何内容。当我将
y
初始化为0时,代码运行,但我将
0
作为输出,这不是将
sin
从0积分为1时发生的情况。我可能调用了错误的函数,但这是需要注意的


此外,您的代码令人困惑,因为您使用变量
g
作为双精度(数字)和函数,即使是在同一行中!当
y
是匿名函数的输入时,同样的问题也会发生,但稍后也是双精度的。它的语法是正确的,但有点难读。考虑使用一个不同的变量名,或者包括清晰的注释(或两者都)!< P/>你能提供一个示例调用吗?你也可以显示错误消息吗?TekEKuler-@ Smail Ar::)我想要评估的是例如It{{ 0 } ^ 2 } {{ 0 } ^ y} EXP(x)dx Dy=?我的编程经验很差,但我想我可能应该为内积分定义一个函数。“如何”是我的问题?tesekkürler tekrar…f=@(x)x^2f=@(x)x^2>>trapapadbl(0,1,2,3,10,10,f)???未定义的函数或变量“y”。18y=y+feval(g,i)时==>trapapadbl中的错误;谢谢@alexplanation!现在我发现我的问题也有点困惑:)
>> trapapadbl(0,1,0.1,0,1,0.1,@sin)

??? Undefined function or variable "y".

Error in ==> trapapadbl at 12
    y= y + feval(g,i);