szldh2005
2013-04-24, 12:40
现有一个符号积分,2010a版本在不同的机子上得到不同的数值计算结果,差得太大!百思不解,困扰很久。请求高手帮助解决,在此先谢!
[HTML][clc;clear;
syms x y u b
u=10^-54
%%%%%%% B 符号积分->数值计算 %%%%%%
% 一、原无限积分
disp('%%%%%% B 符号积分->数值计算 %%%%%%%%')
disp('一、原无限积分')
b=-log(10^-15);
f1=@(x) exp(-x)./x;
w1k=@(u) vpa(int(f1(x),x,u,inf),20); % 符号积分-数值计算(原无限积分)
w1d=@(u) vpa(int(f1(x),x,u,b),20); % 符号积分-数值计算(原无限截断积分)
w1k=w1k(u)
w1d=w1d(u)
% 二、等价无限积分
disp('二、等价无限积分')
b=log(-log(10^-15));
f2=@(y) exp(-exp(y));
w2k=@(u) vpa(int(f2(y),y,log(u),inf),20); % 符号积分-数值计算(等价无限积分)
w2d=@(u) vpa(int(f2(y),y,log(u),b),20); % 符号积分-数值计算(等价截断积分)
w2k=w2k(u)
w2d=w2d(u)
% 三、等价有限积分1
disp('三、等价有限积分1')
f3=@(y) 1./log(y);
w3k=@(u) -vpa(int(f3(y),y,0,exp(-u)),20); % 符号积分-数值计算(等价有限积分1)
w3k=w3k(u)
% 四、等价有限积分2
disp('四、等价有限积分2')
f4=@(y) exp(-u)./(u-log(y));
w4k=@(u) vpa(int(f4(y),y,0,1),20); % 符号积分-数值计算(等价有限积分2)
w4k=w4k(u)
% 五、等价有限积分3
disp('五、等价有限积分3')
f5=@(y) exp(-u./y)./y;
w5k=@(u) vpa(int(f5(y),y,0,1),20); % 符号积分-数值计算(等价有限积分3)
w5k=w5k(u)
/HTML]
[HTML][clc;clear;
syms x y u b
u=10^-54
%%%%%%% B 符号积分->数值计算 %%%%%%
% 一、原无限积分
disp('%%%%%% B 符号积分->数值计算 %%%%%%%%')
disp('一、原无限积分')
b=-log(10^-15);
f1=@(x) exp(-x)./x;
w1k=@(u) vpa(int(f1(x),x,u,inf),20); % 符号积分-数值计算(原无限积分)
w1d=@(u) vpa(int(f1(x),x,u,b),20); % 符号积分-数值计算(原无限截断积分)
w1k=w1k(u)
w1d=w1d(u)
% 二、等价无限积分
disp('二、等价无限积分')
b=log(-log(10^-15));
f2=@(y) exp(-exp(y));
w2k=@(u) vpa(int(f2(y),y,log(u),inf),20); % 符号积分-数值计算(等价无限积分)
w2d=@(u) vpa(int(f2(y),y,log(u),b),20); % 符号积分-数值计算(等价截断积分)
w2k=w2k(u)
w2d=w2d(u)
% 三、等价有限积分1
disp('三、等价有限积分1')
f3=@(y) 1./log(y);
w3k=@(u) -vpa(int(f3(y),y,0,exp(-u)),20); % 符号积分-数值计算(等价有限积分1)
w3k=w3k(u)
% 四、等价有限积分2
disp('四、等价有限积分2')
f4=@(y) exp(-u)./(u-log(y));
w4k=@(u) vpa(int(f4(y),y,0,1),20); % 符号积分-数值计算(等价有限积分2)
w4k=w4k(u)
% 五、等价有限积分3
disp('五、等价有限积分3')
f5=@(y) exp(-u./y)./y;
w5k=@(u) vpa(int(f5(y),y,0,1),20); % 符号积分-数值计算(等价有限积分3)
w5k=w5k(u)
/HTML]