nnpc.net
当前位置:首页 >> MAtlAB定积分的符号计算不出结果 >>

MAtlAB定积分的符号计算不出结果

例如: >> clear >> syms x >> int(exp(sin(tan(x))),x,0,1) ans = int(exp(sin(tan(x))), x, 0, 1) 无法求出积分的符号解,可能是因为没有初等原函数。 这时候可以求数值解: >> clear >> steplength=0.0001; >> x=0:steplength:1; >> y=exp(si...

像你这样的定积分(字符变量太多了),按目前的matlab软件是无法解出其解析表达式。 我建议要抓住主要的积分变量,其他用具体数值代入,这样很方便地得到结果。

像这类曲线积分的表达式很难求出解析表达式的,没有办法。 从计算定积分的角度来说,你没必要过于纠结解析表达式,其实只要知道这是一个函数,只要给定了自变量,都能够求出函数值来,就够了。例如,按照你的要求,上限是一个具体的数例如8133.2...

按你的程序积分结果是个sym,可在最后加上:a=double(I) 就转化为数值了。

你可以把erf、erfc这类函数看作和exp、sin等函数一样; 它们对于给定的x都是可计算的,有明确的函数值; 是积分表达式的简记(具体表达上参见文档),无法表示成更简单初等函数的形式。

可以用eval或double将其强制转换为数值类型: >> p=[-1,1,0,0,1];>> r=roots(p);>> syms t y>> y=-t^4+t^3+1;>> a=r(4);b=r(1);>> S=int(y,t,a,b)S =568704934255371301030622029870605341246289411397194775051131423230050797740313363/296427...

经检查是公式写错了,负号位置错了。 k=0.390803;mu=0.463506;sigma=0.219108; PDF=@(x)(1/sigma).*exp(-(1+k*(x-mu)/sigma).^(-1/k)).*(1+k*(x-mu)/sigma).^(-1-(1/k)); S=quadl(PDF,0.3,2.9) 运行结果 S = 0.897133772014529

你用的是哪个版本? 我在6.5和2013b上测试都没问题: >> syms x y z>> r=int(int(int(x^2+y^2+z^2,z,sqrt(x*y),x^2*y),y,sqrt(x),x^2),x,1,2)r = 1610027357/6563700-6072064/348075*2^(1/2)+14912/4641*2^(1/4)+64/225*2^(3/4) >> double(r)ans...

主要是最后 句int(d_DELTA_delta,delta_1)中,积分限没设置好,可改为 int(d_DELTA_delta,0,5) 就有结果了。

楼上是正解。 如果求值的话,在上面的基础上,继续这样写: clc clear all syms a x y=int(exp(-0.2*a-x.^2/2),'x','-inf','a') a=10; eval(y)

网站首页 | 网站地图
All rights reserved Powered by www.nnpc.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com