matlab中函数有多个变量如何只对其中一个积分,并得到函数.

问题描述:

matlab中函数有多个变量如何只对其中一个积分,并得到函数.
function f=cd(y,z)
syms x;
syms y;
syms z;
m=((x-1531.2)/0.2)^-8/16+0.5*((x-1531.5)/0.2)^-8/16;
n=((x-y)/0.2)^-8/16+0.5*((x-z)/0.2)^-8/16;
l=(n-m)^2;
f=int(sym(l),x,0,inf);
这段程序一直算不出来.我感觉是我用的是字符型,但是数值型积分quadl只能对一个变量且要求定积分.我该怎么办?
1个回答 分类:综合 2014-09-24

问题解答:

我来补答
如果想做数值积分,那么“其他变量”必须赋予具体的数值,而不能用符号变量表示.修改示例:function f = cd(y,z)
m = @(x) ((x-1531.2)/0.2).^-8/16+0.5*((x-1531.5)/0.2).^-8/16;
n = @(x) ((x-y)/0.2).^-8/16+0.5*((x-z)/0.2).^-8/16;
l = @(x) (n(x)-m(x)).^2;
f = integral(l,0,inf);另外,请注意,我刚刚试了一下y=1 z=1的情形,发现被积函数在x=1处发散.请务必注意给yz取合适的值,否则这会导致不可预料的积分值.
再问: 谢谢你的回答,这个我是想得到一个关于y和z的目标函数。在另一个程序中会对Y和Z赋不同的值并比较大小。困扰我半天了,因为是个新手,真不知道该怎么改了。请问下,赋值是直接cd(1,1)这样就行了吗?谢谢了。
 
 
展开全文阅读
剩余:2000
上一页:第九题,详解
下一页:gyyv