matlab多参数数值积分

quadl()这个函数积分能有几个参数呀如y=3*x.^2+t给定t这个quadl肯定能求,但是y=3*x.^2+t1+t2+t3;用quadl积分总是报错,Tooman... quadl()这个函数积分能有几个参数呀

如y=3*x.^2+t
给定t这个quadl肯定能求,
但是y=3*x.^2+t1+t2+t3;
用quadl积分总是报错,
Too many input arguments.怎么才能实现多参数的数值积分

z=quadl(@(x)myfun(x,t1,t2,t3),0,1,[],[],t1,t2,t3);

function y=mufunction(x,t1,t2,t3)
y=y=3*x.^2+t1+t2+t3;
展开
 我来答
又金壁又辉煌cX
推荐于2016-03-29 · TA获得超过1710个赞
知道小有建树答主
回答量:304
采纳率:100%
帮助的人:459万
展开全部
你要是只对x做一维积分,只需要给出x的范围就行,就是只需要给出积分限
可以改成
z=quadl(@(x)myfun(x,t1,t2,t3),0,1);

当然t1,t2,t3前面也需要给出定值
我说的定值,就是代入参数,就是子函数mufunction的输入参数,就是说t1,t2,t3不要也是积分变量就可以

另外,你的子函数是mufunction
而你quadl调用时,用的是myfun
你看我的例子
子函数是:
function Exf = Exfun(theta,k,rp,thetap )
Exf=sqrt(cos(theta)).*sin(theta).*(1+cos(theta)).*exp(-1i*k*rp.*cos(thetap).*cos(theta)).*besselj(0,-k*rp.*sin(theta).*sin(thetap))...
+sqrt(cos(theta)).*sin(theta).*(1-cos(theta)).*exp(-1i*k*rp.*cos(thetap).*cos(theta)).*besselj(2,-k*rp.*sin(theta).*sin(thetap));
end
调用时:
>> x=quadl(@(theta)Exfun(theta,5,7,pi),0,pi)

x =

-0.0256 + 0.0517i
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式