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/06/30 11:45:43
![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);这段](/uploads/image/z/5249844-36-4.jpg?t=matlab%E4%B8%AD%E5%87%BD%E6%95%B0%E6%9C%89%E5%A4%9A%E4%B8%AA%E5%8F%98%E9%87%8F%E5%A6%82%E4%BD%95%E5%8F%AA%E5%AF%B9%E5%85%B6%E4%B8%AD%E4%B8%80%E4%B8%AA%E7%A7%AF%E5%88%86%2C%E5%B9%B6%E5%BE%97%E5%88%B0%E5%87%BD%E6%95%B0.function+f%3Dcd%28y%2Cz%29syms+x%3Bsyms+y%3Bsyms+z%3Bm%3D%28%28x-1531.2%29%2F0.2%29%5E-8%2F16%2B0.5%2A%28%28x-1531.5%29%2F0.2%29%5E-8%2F16%3Bn%3D%28%28x-y%29%2F0.2%29%5E-8%2F16%2B0.5%2A%28%28x-z%29%2F0.2%29%5E-8%2F16%3Bl%3D%28n-m%29%5E2%3Bf%3Dint%28sym%28l%29%2Cx%2C0%2Cinf%29%3B%E8%BF%99%E6%AE%B5)
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取合适的值,否则这会导致不可预料的积分值.