matlab怎么表示含参变量的积分

matlab中,我想表示一个函数g(a)=(函数f(a,x)在[0,a]上对x的积分)高手指点!谢谢!!终于知道怎么做了,很直接地functionF=g(a)F=quad... matlab中,
我想表示一个函数g(a)=(函数f(a,x)在[0,a]上对x的积分)
高手指点!谢谢!!
终于知道怎么做了,很直接地
function F=g(a)
F=quad(@(x)myfun(x,a),0,a);
我一直不清楚的是含两个自变量的函数怎么指定其中一个的值然后只以另一个作为积分变量积分。
晕!原来quad直接有这个功能,我的确很菜!!
不过我又碰到问题了,对于这个函数f1(x,a)=cos(x)./sqrt(cos(x)-cos(a)),其中a=2.28
命令
quad(@(x)f1(x,2.28),0,2.28);运行正常
但命令
quad(@(x)f1(x,2.28),pi/2,2.28);则出现以下错误
Warning: Infinite or Not-a-Number function value encountered.
> In quad at 95

ans =

NaN
其中的pi/2换成其它数如1.5也是这样出错,这是怎么回事,a值一样,只是积分区间从[0,2.28]变为[1.5,2.28],积分区间缩小了而积分反而不能积了,这也奇怪了吧!难道是我的matlab坏了?
刚才我又试了下,发现更惊人的,
quad(@(x)f1(x,2.28),0,pi./2);运行正常!!!
难道quad(@(x)f1(x,2.28),0,2.28)-quad(@(x)f1(x,2.28),0,pi./2)
与quad(@(x)f1(x,2.28),pi/2,2.28)不是相等的吗
a确定,一元函数f1(x,2.28)在[0,2.28]上的积分不是等于它在[0,pi./2]上的积分与在[pi/2,2.28]上的积分之和吗?
展开
 我来答
k打酱油k
推荐于2017-11-23 · TA获得超过1395个赞
知道小有建树答主
回答量:266
采纳率:66%
帮助的人:327万
展开全部
function F=g(a)
F=quad(@myfun,0,a);%调用匿名函数,

%子函数
function f=myfun(a,x)
f=.......

积分一般用quad比较多,还有其他几个函数,基本原理都差不多,结果好像也差不多。

-------------------------------------------------
是在别的函数或脚本里调用g(a),把变量赋予函数1,函数1再利用匿名函数的形式调用函数2,绝对是可行的,我写过几个完全一样的程序。
放在同一个文件里也可,存成函数文件亦可,文件名就取g.m和myfun.m
实在不行就给我发消息

-------------------------------------------------
请把公式改成f1(x,a)=cos(x)./sqrt(cos(x)-cos(a+1e-12));
重等游1419
2010-04-19 · TA获得超过154个赞
知道答主
回答量:50
采纳率:0%
帮助的人:49万
展开全部
一个确定的函数f(x)在[0,a]对x的积分是吧?
假设你的a也是一个符号变量。
那么——
syms x a;%定义符号变量a和x
fx=f(x);%输入你想要的函数
ga=int(fx,0,a)%把f(x)在[0,a]区间的积分赋给g(a)
%应该可以了吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式