回 帖 发 新 帖 刷新版面

主题:[原创]做论文遇到超大型积分,请高手指点

我先是用MAPLE计算了他的数值积分,但是算不出来。不知道MATELAB是否能有结果,请高手帮忙算一下,谢谢。1/((7/10)*sqrt(10)*sqrt((3+2*x)*(-30*x^2+35+20*x^3+sqrt(-1920*x^5+145+2800*x^3+320*x^6-720*x)))/(3+2*x)-(3/5)*x^2*sqrt(10)*sqrt((3+2*x)*(-30*x^2+35+20*x^3+sqrt(-1920*x^5+145+2800*x^3+320*x^6-720*x)))/(3+2*x)+(2/5)*x^3*sqrt(10)*sqrt((3+2*x)*(-30*x^2+35+20*x^3+sqrt(-1920*x^5+145+2800*x^3+320*x^6-720*x)))/(3+2*x)-(3/50)*sqrt(10)*((3+2*x)*(-30*x^2+35+20*x^3+sqrt(-1920*x^5+145+2800*x^3+320*x^6-720*x)))^(3/2)/(3+2*x)^3-(1/25)*x*sqrt(10)*((3+2*x)*(-30*x^2+35+20*x^3+sqrt(-1920*x^5+145+2800*x^3+320*x^6-720*x)))^(3/2)/(3+2*x))化简之后应该是-5*sqrt(2)*(3+2*x)/(sqrt((3+2*x)*(-30*x^2+35+20*x^3+sqrt(5)*sqrt((4*x^2-28*x+29)*(-1+2*x+4*x^2)^2)))*sqrt((4*x^2-28*x+29)*(-1+2*x+4*x^2)^2))

回复列表 (共6个回复)

沙发

>> syms x
>> f=1/((7/10)*sqrt(10)*sqrt((3+2*x)*(-30*x^2+35+20*x^3+sqrt(-1920*x^5+145+2800*x^3+320*x^6-720*x)))/(3+2*x)-(3/5)*x^2*sqrt(10)*sqrt((3+2*x)*(-30*x^2+35+20*x^3+sqrt(-1920*x^5+145+2800*x^3+320*x^6-720*x)))/(3+2*x)+(2/5)*x^3*sqrt(10)*sqrt((3+2*x)*(-30*x^2+35+20*x^3+sqrt(-1920*x^5+145+2800*x^3+320*x^6-720*x)))/(3+2*x)-(3/50)*sqrt(10)*((3+2*x)*(-30*x^2+35+20*x^3+sqrt(-1920*x^5+145+2800*x^3+320*x^6-720*x)))^(3/2)/(3+2*x)^3-(1/25)*x*sqrt(10)*((3+2*x)*(-30*x^2+35+20*x^3+sqrt(-1920*x^5+145+2800*x^3+320*x^6-720*x)))^(3/2)/(3+2*x))
 
f =
 
1/(7/10*10^(1/2)*((3+2*x)*(-30*x^2+35+20*x^3+(-1920*x^5+145+2800*x^3+320*x^6-720*x)^(1/2)))^(1/2)/(3+2*x)-3/5*x^2*10^(1/2)*((3+2*x)*(-30*x^2+35+20*x^3+(-1920*x^5+145+2800*x^3+320*x^6-720*x)^(1/2)))^(1/2)/(3+2*x)+2/5*x^3*10^(1/2)*((3+2*x)*(-30*x^2+35+20*x^3+(-1920*x^5+145+2800*x^3+320*x^6-720*x)^(1/2)))^(1/2)/(3+2*x)-3/50*10^(1/2)*((3+2*x)*(-30*x^2+35+20*x^3+(-1920*x^5+145+2800*x^3+320*x^6-720*x)^(1/2)))^(3/2)/(3+2*x)^3-1/25*x*10^(1/2)*((3+2*x)*(-30*x^2+35+20*x^3+(-1920*x^5+145+2800*x^3+320*x^6-720*x)^(1/2)))^(3/2)/(3+2*x))
 
 
>> f0=simple(f);
>> f0
 
f0 =
 
-5*10^(1/2)*(3+2*x)^2/(160*x^6+240*x^5-400*x^4-200*x^3+8*x^3*5^(1/2)*((4*x^2-28*x+29)*(-1+2*x+4*x^2)^2)^(1/2)+24*x^2*5^(1/2)*((4*x^2-28*x+29)*(-1+2*x+4*x^2)^2)^(1/2)+840*x^2+560*x+18*x*5^(1/2)*((4*x^2-28*x+29)*(-1+2*x+4*x^2)^2)^(1/2)+3*5^(1/2)*((4*x^2-28*x+29)*(-1+2*x+4*x^2)^2)^(1/2))/((3+2*x)*(20*x^3-30*x^2+35+5^(1/2)*((4*x^2-28*x+29)*(-1+2*x+4*x^2)^2)^(1/2)))^(1/2)
 
 
>> f1=int(f0)
Warning: Explicit integral could not be found.
> In sym.int at 58
 
f1 =
 
int(-5*10^(1/2)*(3+2*x)^2/(160*x^6+240*x^5-400*x^4-200*x^3+8*x^3*5^(1/2)*((4*x^2-28*x+29)*(-1+2*x+4*x^2)^2)^(1/2)+24*x^2*5^(1/2)*((4*x^2-28*x+29)*(-1+2*x+4*x^2)^2)^(1/2)+840*x^2+560*x+18*x*5^(1/2)*((4*x^2-28*x+29)*(-1+2*x+4*x^2)^2)^(1/2)+3*5^(1/2)*((4*x^2-28*x+29)*(-1+2*x+4*x^2)^2)^(1/2))/((3+2*x)*(20*x^3-30*x^2+35+5^(1/2)*((4*x^2-28*x+29)*(-1+2*x+4*x^2)^2)^(1/2)))^(1/2),x)

板凳

规定x = -1.5 .. -1/4-(1/4)*sqrt(5),求得是定积分

3 楼

>> fn=@(x)-5.*sqrt(2).*(3+2.*x)./(sqrt((3+2.*x).*(-30.*x.^2+35+20.*x.^3+sqrt(5).*sqrt((4.*x.^2-28.*x+29).*(-1+2.*x+4.*x.^2).^2))).*sqrt((4.*x.^2-28.*x+29).*(-1+2.*x+4.*x.^2).^2))

fn = 

    @(x)-5.*sqrt(2).*(3+2.*x)./(sqrt((3+2.*x).*(-30.*x.^2+35+20.*x.^3+sqrt(5).*sqrt((4.*x.^2-28.*x+29).*(-1+2.*x+4.*x.^2).^2))).*sqrt((4.*x.^2-28.*x+29).*(-1+2.*x+4.*x.^2).^2))

>> fo=quad(fn,-1.5,-1/4-(1/4)*sqrt(5))
Warning: Infinite or Not-a-Number function value encountered.
> In quad at 109

fo =

  -Inf



好像也不能积分

4 楼

>> syms x
>> f=1/((7/10)*sqrt(10)*sqrt((3+2*x)*(-30*x^2+35+20*x^3+sqrt(-1920*x^5+145+2800*x^3+320*x^6-720*x)))/(3+2*x)-(3/5)*x^2*sqrt(10)*sqrt((3+2*x)*(-30*x^2+35+20*x^3+sqrt(-1920*x^5+145+2800*x^3+320*x^6-720*x)))/(3+2*x)+(2/5)*x^3*sqrt(10)*sqrt((3+2*x)*(-30*x^2+35+20*x^3+sqrt(-1920*x^5+145+2800*x^3+320*x^6-720*x)))/(3+2*x)-(3/50)*sqrt(10)*((3+2*x)*(-30*x^2+35+20*x^3+sqrt(-1920*x^5+145+2800*x^3+320*x^6-720*x)))^(3/2)/(3+2*x)^3-(1/25)*x*sqrt(10)*((3+2*x)*(-30*x^2+35+20*x^3+sqrt(-1920*x^5+145+2800*x^3+320*x^6-720*x)))^(3/2)/(3+2*x))
 
f =
 
1/(7/10*10^(1/2)*((3+2*x)*(-30*x^2+35+20*x^3+(-1920*x^5+145+2800*x^3+320*x^6-720*x)^(1/2)))^(1/2)/(3+2*x)-3/5*x^2*10^(1/2)*((3+2*x)*(-30*x^2+35+20*x^3+(-1920*x^5+145+2800*x^3+320*x^6-720*x)^(1/2)))^(1/2)/(3+2*x)+2/5*x^3*10^(1/2)*((3+2*x)*(-30*x^2+35+20*x^3+(-1920*x^5+145+2800*x^3+320*x^6-720*x)^(1/2)))^(1/2)/(3+2*x)-3/50*10^(1/2)*((3+2*x)*(-30*x^2+35+20*x^3+(-1920*x^5+145+2800*x^3+320*x^6-720*x)^(1/2)))^(3/2)/(3+2*x)^3-1/25*x*10^(1/2)*((3+2*x)*(-30*x^2+35+20*x^3+(-1920*x^5+145+2800*x^3+320*x^6-720*x)^(1/2)))^(3/2)/(3+2*x))
 
>> f=simple(f)
 
f =
 
-5*10^(1/2)*(3+2*x)^2/(160*x^6+240*x^5-400*x^4-200*x^3+8*x^3*5^(1/2)*((4*x^2-28*x+29)*(-1+2*x+4*x^2)^2)^(1/2)+24*x^2*5^(1/2)*((4*x^2-28*x+29)*(-1+2*x+4*x^2)^2)^(1/2)+840*x^2+560*x+18*x*5^(1/2)*((4*x^2-28*x+29)*(-1+2*x+4*x^2)^2)^(1/2)+3*5^(1/2)*((4*x^2-28*x+29)*(-1+2*x+4*x^2)^2)^(1/2))/((3+2*x)*(20*x^3-30*x^2+35+5^(1/2)*((4*x^2-28*x+29)*(-1+2*x+4*x^2)^2)^(1/2)))^(1/2)
 
>> a=-1.5;b=-1/4-(1/4)*sqrt(5);
>> IntGauss(f,a,b,4)  %利用Gauss求积公式求数值积分

ans =

    0.1912

5 楼

%具体算法见相关计算方法教材
function I = IntGauss(f,a,b,n,AK,XK)
%f:被积函数
%a:积分下限
%b:积分上限
%n:积分所用项
%AK:自定义系数
%XK:自定义结点
if(n<5 && nargin == 4)
    AK = 0;
    XK = 0;
else
    XK1=((b-a)/2)*XK+((a+b)/2);
    I=((b-a)/2)*sum(AK.*subs(sym(f),findsym(f),XK1));
end

ta = (b-a)/2;
tb = (a+b)/2;
switch n
    case 0,
        I=2*ta*subs(sym(f),findsym(sym(f)),tb);
        
    case 1,
        I=ta*(subs(sym(f),findsym(sym(f)),ta*0.5773503+tb)+...
            subs(sym(f),findsym(sym(f)),-ta*0.5773503+tb));
        
    case 2,
        I=ta*(0.55555556*subs(sym(f),findsym(sym(f)),ta*0.7745967+tb)+...
            0.55555556*subs(sym(f),findsym(sym(f)),-ta*0.7745967+tb)+...
            0.88888889*subs(sym(f),findsym(sym(f)),tb));
           
    case 3,
        I=ta*(0.3478548*subs(sym(f),findsym(sym(f)),ta*0.8611363+tb)+...
            0.3478548*subs(sym(f),findsym(sym(f)),-ta*0.8611363+tb)+...
            0.6521452*subs(sym(f),findsym(sym(f)),ta*0.3398810+tb)...
            +0.6521452*subs(sym(f),findsym(sym(f)),-ta*0.3398810+tb));
  
        
    case 4,
        I=ta*(0.2369269*subs(sym(f),findsym(sym(f)),ta*0.9061793+tb)+...
            0.2369269*subs(sym(f),findsym(sym(f)),-ta*0.9061793+tb)+...
            0.4786287*subs(sym(f),findsym(sym(f)),ta*0.5384693+tb)...
            +0.4786287*subs(sym(f),findsym(sym(f)),-ta*0.5384693+tb)+...
            0.5688889*subs(sym(f),findsym(sym(f)),tb));
end
        

6 楼

非常感谢!!! 还想问一下这个积分的精度怎样,比MAPLE的普通积分运算的精度怎样? 以后我就用这个积分了。

我来回复

您尚未登录,请登录后再回复。点此登录或注册