回 帖 发 新 帖 刷新版面

主题:[讨论]matlab 积分函数含有变量怎么办

我在用matlab求积分时遇到了特殊情况,一个积分函数里有别的变量,也就是被积函数里除了积分变量之外,还有别的量,在积分时是常量,但是在调用这个积分函数以前要赋不同的值
怎么办呢

回复列表 (共8个回复)

沙发

我也遇到了同样的问题,请问您解决了吗??着急啊,能不能和您联系一下,我的电话是0531-88396831,一般晚上在,拜托了

板凳

别的变量只能是数值存在,所以调用前只能是一个确实的数。这样,你可以扩展一层循环,把“别的变量”用离散数值表示。也就是,数值计算。
如:f=f(x,y)。要对x积分,但是含有变量y??
把y离散,y=[起点 终点]
那么积分变成了
y(i)下 f=f(x,y(i))的积分值。这就是数值计算。这是想用程序解必具备的思想

3 楼

int积分函数就可以了,它可以对符号表达式积分的,你只要最后表明是对哪个变量进行积分就行了,其他的变量在积分时都当常量
比如
>> syms x y
>> f=x^2+y^2
 
f =
 
x^2+y^2
 
 
>> int(f,x,0,1)
 
ans =
 
1/3+y^2
 
 
后面你可以用数值去代替其中的y

4 楼

>> syms x y
>> f=x^2+y^2
 
f =
 
x^2+y^2
 
>> int(f,x,0,1)
 
ans =
 
1/3+y^2
 
>> int(subs(f,'y',2),x,0,1)
 
ans =
 
13/3
 
>> subs(int(f,x,0,1),'y',2)

ans =

    4.3333

5 楼

上面给出一个参数的做法,即y=2
如果是多个参数怎么办?

如:
求 x+y+z 在区间[0,1]上的积分 
其中y,z为不定参数。

6 楼

[quote]上面给出一个参数的做法,即y=2
如果是多个参数怎么办?

如:
求 x+y+z 在区间[0,1]上的积分 
其中y,z为不定参数。[/quote]


嵌套就行了
syms x y z
u=x+y+z
v=int(u,x,0,1)
subs(subs(v,'y',3),'z',1)

7 楼

谢谢楼上几位,现在学会对给定不同参数做积分了。

M-file:
function [ f ] = intg( a,b,y0,z0,h0 )
syms x y z h
u = x+y+z+h;
v=int(u,x,a,b);
f = subs(subs(subs(v,'y',y0),'z',z0),'h',h0)

intg(0,3,3,1,4)


f =

   28.5000


ans =

   28.5000

8 楼

好帖!

我来回复

您尚未登录,请登录后再回复。点此登录或注册