matlab定积分计算结果为表达式,我只想得到数值。用double(ans)也没用,不知道还有没有其他方法!
clearsymsx;k=0.390803;mu=0.463506;sigma=0.219108;PDF=(1/sigma)*exp((-1+k*(x-mu)/sigma...
clear
syms x;
k=0.390803 ;
mu=0.463506 ;
sigma= 0.219108 ;
PDF=(1/sigma)*exp((-1+k*(x-mu)/sigma)^(-1/k))*(1+k*(x-mu)/sigma)^(-1-(1/k));
S=int(PDF,x,0.3,2.9);
eval(S)
这是原程序代码,其结果为
ans =
int((2569280689985359*exp(1/((14080161961402176*x)/7894197657231157 - 8226786109654163/4503599627370496)^(5761981903120621/2251799813685248)))/(562949953421312*((14080161961402176*x)/7894197657231157 + 6243305160694637/36028797018963968)^(8013781716805869/2251799813685248)), x, 3/10, 29/10) 展开
syms x;
k=0.390803 ;
mu=0.463506 ;
sigma= 0.219108 ;
PDF=(1/sigma)*exp((-1+k*(x-mu)/sigma)^(-1/k))*(1+k*(x-mu)/sigma)^(-1-(1/k));
S=int(PDF,x,0.3,2.9);
eval(S)
这是原程序代码,其结果为
ans =
int((2569280689985359*exp(1/((14080161961402176*x)/7894197657231157 - 8226786109654163/4503599627370496)^(5761981903120621/2251799813685248)))/(562949953421312*((14080161961402176*x)/7894197657231157 + 6243305160694637/36028797018963968)^(8013781716805869/2251799813685248)), x, 3/10, 29/10) 展开
展开全部
可以用符号运算来求:
1234567891011
>> J=int(exp(x)*(x^2+sqrt(x)),0,1) J = 2*exp(1)+1/备晌烂2*i*pi^(1/2)*erf(i)-2 >> double(J)ans = 1.9739 >> vpa(J,30) ans = 1.97391191101090886191652635584
得到的结果是解析表达式,要想得到具体的数,可以用double或vpa函数仿漏(其中vpa可以得到任意精度谨裂的结果,而double得到的是双精度浮点数)。
当然,也可以用数值积分:
123
>> quadl(inline('exp(x).*(x.^2+sqrt(x))'),0,1)ans = 1.9739
1234567891011
>> J=int(exp(x)*(x^2+sqrt(x)),0,1) J = 2*exp(1)+1/备晌烂2*i*pi^(1/2)*erf(i)-2 >> double(J)ans = 1.9739 >> vpa(J,30) ans = 1.97391191101090886191652635584
得到的结果是解析表达式,要想得到具体的数,可以用double或vpa函数仿漏(其中vpa可以得到任意精度谨裂的结果,而double得到的是双精度浮点数)。
当然,也可以用数值积分:
123
>> quadl(inline('exp(x).*(x.^2+sqrt(x))'),0,1)ans = 1.9739
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是因为符号积分饥梁无法计算,答案还是符号积分,没看瞎含见烂神运前面还有int吗
只能采用数值积分,例如函数quad
只能采用数值积分,例如函数quad
更多追问追答
追问
quad 我也试了,发生报错,构造函数:function y = myfun(x) k=0.390803 ;mu=0.463506 ;sigma= 0.219108 ;y=(1/sigma).*exp((-1+k.*(x-mu)./sigma).^(-1./k)).*(1+k.*(x-mu)./sigma).^(-1-(1./k));end
求0.1-2的积分 clear syms x;Q =quad(@myfun,0.1,2);
报错:
警告: 遇到无限值或 Not-a-Number 函数值。
> In quad at 100
In gev at 9
就不知道怎么办了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个表达式不可以积分
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询