Matlab 使用向量计算的带乐趣的积分2
我是MATLAB新手。希望使用integral2,如下所示Matlab 使用向量计算的带乐趣的积分2,matlab,Matlab,我是MATLAB新手。希望使用integral2,如下所示 function num = numer(x) fun=@(p,w) prod((p+1-p).*(1-w).*exp(w.*x.*x/2)) num= integral2(fun ,0,1,0,1) end 我从一开始就犯了几个错误 Error using .* Matrix dimensions must agree. Error in numer>@(p,w)prod(p+(1-w).*exp(w.*x.*x/2))
function num = numer(x)
fun=@(p,w) prod((p+1-p).*(1-w).*exp(w.*x.*x/2))
num= integral2(fun ,0,1,0,1)
end
我从一开始就犯了几个错误
Error using .*
Matrix dimensions must agree.
Error in numer>@(p,w)prod(p+(1-w).*exp(w.*x.*x/2)) (line 5)
fun=@(p,w) prod(p+(1-w).*exp(w.*x.*x/2))
你能告诉我我做错了什么吗。
感谢帮助中提供的以下帮助:
所有输入函数必须接受数组作为输入并进行操作元素方面。函数Z=FUN(X,Y)必须接受数组X和Y的
相同的大小并返回相应值的数组 当
x
为非标量时,函数fun
不会这样做。通过在prod
中包装所有内容,函数始终返回标量。假设您的prod
位于正确的起始位置,并利用了指数的特性,我相信此版本将满足您对向量x
的需求:
x = [0 1];
lx = length(x);
fun = @(p,w)(p+1-p).^lx.*(1-w).^lx.*exp(w).^sum(x.*x/2);
num = integral2(fun,0,1,0,1)
或者,
fun=@(p,w)(p+1-p)。^lx.*(1-w)。^lx.*exp(sum(x.*x/2))。^w
可以使用。@user3003027:我的回答有助于解决您的问题吗?如果它对你有用,请接受它。非常感谢。