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

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]上的积分之和吗?

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));
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-04-19
一个确定的函数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)
%应该可以了吧

matlab怎么表示含参变量的积分
子函数 function f=myfun(a,x)f=...积分一般用quad比较多,还有其他几个函数,基本原理都差不多,结果好像也差不多。--- 是在别的函数或脚本里调用g(a),把变量赋予函数1,函数1再利用匿名函数的形式调用函数2,绝对是可行的,我写过几个完全一样的程序。放在同一个文件里也可,存成函数文件...

如何用matlab求解带参数变量的定积分
fun=@(a)quad(@(x)a*x,0,10);得到含参积分fun(a)= ∫下0上10 a*x dx.若a=2,可得 fun(2)=100

matlab如何求含参变量的重积分?
其实只要把变量作为常量,因为你只是对x、y进行积分,这个未知变量直接提到表达式前就可以了。

怎么用matlab算含字母的定积分? 比如:
含参量的定积分用matlab是不能直接求得。首先,设定r等于某一定值 然后,求定积分 如:r=100;int(r*cos(x)+sqrt(400-r^2*(sin(x))^2)-2*sqrt(100-r^2*(sin(x))^2),x,0,pi)ans =40*elliptice(25)- 40*elliptice(100)elliptice——椭圆积分 或直接求不定积分 syms x r int(r...

用matlab计算含参变量的二重积分
不妨设想一下,仅仅exp(-x^2)的积分已经不能用初等函数表示,而需要借助于引入所谓的误差函数erf来表示,像楼主现在的积分表达式就更不用说了。对于定积分,虽然不能得到解析结果,但可以借助于数值方法来求。比如,对于z取某个范围的值,可以分别计算出相应的P(z)来,但需要明确两个条件:1、z的...

matlab编程求教,含参变量的方程,给出一系列的参变量的值,求方程相应的...
1、可以用控制理论里面的根轨迹方法来求出a=2:50时方程根的分布情况:s=tf('s');rlocus(s^7\/(s^2+1)^7,2:50)由图可见,对于给定的a值,方程根本就没有实数根,更不要说正数解了。如果把a的范围放大到0~inf的范围,得到完整的根轨迹如下:rlocus(s^7\/(s^2+1)^7)ylim([-3 3])...

用matlab解含参变量的方程组
clear;syms x y a b;[a,b,x,y]=solve('x*sin(a*pi\/180)=y*sin(b*pi\/180),a+b=90,x=3,y=3')这样就可以了。clc;clear;syms a b;x=input('x=');y=input('y=');f1=a+b-90;f2=x*sin(a*pi\/180)-y*sin(b*pi\/180);S=solve(f1,f2);S.a S.b 这样就行了。。

matlab中求绝值的函数是什么?
…,ydatan)lsqcurvefit用以求含参量x(向量)的向量值函数F(x,xdata)=(F(x,xdata1),…,F(x,xdatan))T中的参变量x(向量),使得1\/2*∑[a+b*exp(-0.02*k*t(i))-c(i)]^2最小1.先定义个函数funfunction y=fun(x,t)y=(x(1)+x(2)*t.^x(3)).*(1-t)...

Matlab里如何求解含参数二元函数的极值?
+V*h\/(t*T*(r+1)*(r+2))*((t+T)^(r+2)-T^(r+2)-t^(r+2))dfdT=diff(f,T)dfdt=diff(f,t)solve(dfdT,dfdt,'T,t')但是由于方程太复杂,没有解析解。Warning: Warning, solutions may have been lost Warning: Explicit solution could not be found.ans = [ empty sym ]

如何用matlab最小二乘法求解两个含参变量
令A=acos(a),B=sin(b),Y=y\/x,则Y=A+Bx,再套用线性回归公式就可以求得A、B,最后再解两个简单三角方程即可得到a、b。当然,对于任意给定的{x}和{y},A、B一定有解,但a、b不一定有解,比方求得的B=5的情况下b在实数范围内无解。

相似回答