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);这段
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/18 16:08:02
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);这段
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只能对一个变量且要求定积分.我该怎么办?
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);这段
如果想做数值积分,那么“其他变量”必须赋予具体的数值,而不能用符号变量表示.
修改示例:
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取合适的值,否则这会导致不可预料的积分值.