查看: 260|回复: 3|关注: 0

[已答复] 三重积分输入参数太多

[复制链接]

新手

5 麦片

财富积分


050


1

主题

2

帖子

0

最佳答案
发表于 2020-8-7 21:16:55 | 显示全部楼层 |阅读模式
本帖最后由 x458234505 于 2020-8-8 09:03 编辑

n=2;
R0=300;
v=10;
t=100;
h=100;
ux=500;
u0=600;  

%以上参数都是为了方便,我独立令的值,源代码只是一个函数文件没有具体参数,需要传递参数。

B=integral3(@(u,l,z) (1/pi*2.*u.^2.*(l.*(2.*z.*exp(-(z.^2./(n*R0^2))))./(n.*R0^2)*(1-exp(-n))))./(1/200.*sqrt(l.^2-z.^2))./(ux.*sqrt((ux^2-(l-u).^2).*((l+u).^2-ux))), 0 , v*t , @(l) abs(l-ux) , u0 , @(l) abs(l-h) , @(l) min(l+h,n*R0));  



这是我的代码。
提示:
错误使用 untitled>@(l)abs(l-h)
输入参数太多。
求大神帮帮忙,多谢了!!  

回复主题 已获打赏: 0 积分

举报

论坛优秀回答者

9

主题

1637

帖子

347

最佳答案
  • 关注者: 81
发表于 2020-8-8 07:52:59 | 显示全部楼层
代码不全吧,ux,u0都是什么啊
回复此楼 已获打赏: 0 积分

举报

新手

5 麦片

财富积分


050


1

主题

2

帖子

0

最佳答案
 楼主| 发表于 2020-8-8 09:01:19 | 显示全部楼层
20141303 发表于 2020-8-8 07:52
代码不全吧,ux,u0都是什么啊

您好。ux和u0是别的脚本调用该函数时传递的参数。就算把这两个参数都写上还是会报一样的错。
B=integral3(@(u,l,z) (1/pi*2.*u.^2.*(l.*(2.*z.*exp(-(z.^2./(2*300^2))))./(2.*300^2)*(1-exp(-2))))./(1/200.*sqrt(l.^2-z.^2))./(300.*sqrt((300^2-(l-u).^2).*((l+u).^2-300))), 0 , 1000 , @(l) abs(l-300) , 600 , @(l) abs(l-100) , @(l) min(l+100,400));  
回复此楼 已获打赏: 0 积分

举报

论坛优秀回答者

9

主题

1637

帖子

347

最佳答案
  • 关注者: 81
发表于 2020-8-8 09:43:03 | 显示全部楼层
本帖最后由 20141303 于 2020-8-8 09:44 编辑

仅供参考吧,应该需要修改积分域,参考https://www.mathworks.com/help/matlab/ref/quad2d.html中的Limitations of quad2d部分吧

  1. n=2;
  2. R0=300;
  3. v=10;
  4. t=100;
  5. h=100;
  6. u0=1;
  7. fun=@(l,u,z)(1/pi*2.*u.^2.*(l.*(2.*z.*exp(-(z.^2./(2*300^2))))./(2.*300^2)*(1-exp(-2))))./(1/200.*sqrt(l.^2-z.^2))./(300.*sqrt((300^2-(l-u).^2).*((l+u).^2-300)));

  8. B=integral3(fun,0,1000,@(l)abs(l-300),600,@(l,u)abs(l-100),@(l,u)min(l+100,400))  
复制代码
1.PNG
回复此楼 已获打赏: 0 积分

举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

快速回复 返回顶部 返回列表