MATLAB实现变限积分函数的积分/ 多重积分/ 如何解决求积分显示AB浮点标量报错

重点是要用arrayfun扩展

\int_{0}^{1}\int_{0}^{x}r^2dr*xdx

求变限积分的积分:

fun_inner = @(r) r.^2;

fun_integral = @(x) integral(fun_inner, 0,x);

fun_overall = @(u) fun_integral(u).*u;

result = integral(fun_overall ,0,1)

会报错A 和 B 必须为浮点标量

为解决这个问题就要用arrayfun扩展

fun_inner = @(r) r.^2;

fun_integral = @(x) arrayfun(@(x) integral(fun_inner, 0,x),x);

fun_overall = @(u) fun_integral(u).*u;

result = integral(fun_overall ,0,1)

完美运行。

当被积函数不是变限积分的时候,如果比较复杂也会报错说A B浮点标量,用arrayfun也能完美解决。

这个问题我查了很久,最后特别鸣谢这个帖子给了我答案:

https://www.ilovematlab.cn/thread-271951-1-1.html

猜你喜欢

转载自blog.csdn.net/jianti9962/article/details/105078704