声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1836|回复: 13

[综合讨论] 积分收敛问题

[复制链接]
发表于 2007-5-30 21:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
如果被积函数为NAN,但是用数学极限理论它是收敛的,并且极限为0 。在MATLAB里被视为NAN。这样一来,积分结果也为NAN 。这种情况怎么处理? 谢谢!

[ 本帖最后由 eight 于 2007-5-30 21:16 编辑 ]
回复
分享到:

使用道具 举报

发表于 2007-5-30 21:07 | 显示全部楼层
你应该看看高数中的广义积分的概念,不要一味的用matlab,再看看数值计算中处理广义积分的方法吧.这个要自己编程.
 楼主| 发表于 2007-5-31 12:00 | 显示全部楼层

你的意思是不能用MATLAB编?
我是自己编的,就是出现那种情况了!所以不行了!!
发表于 2007-5-31 13:00 | 显示全部楼层
可以在matlab中编,只不过要特殊处理,不能简单的调用matlab的函数.
 楼主| 发表于 2007-5-31 22:21 | 显示全部楼层

回复 #4 hunter_009 的帖子

我的程序:
clear;
m=3.53*10^5;
EI=1.38*10^6;
K=1.7*10^8;
C=10^6;
E=1.5*10^9;
I=9.2*10^(-4);
Cs=6*10^9;
mu=16.67;  
P=4.9*10^7;
n=(Cs*I)/(2*m);
e=C/(2*m);
a=2*n*e-EI/m;
b=e^2-K/m;
r1=-a/(2*n^2)-1/n*sqrt((a/(2*n))^2-b);
r2=-a/(2*n^2)+1/n*sqrt((a/(2*n))^2-b);

    syms w h  x t;
    v1=-r2^(1/4);
    v2=r2^(1/4);
            u=16.67:166.7:1683.67;
  v=1:10:101;  
for s=1:length(u)
      for j=1:length(v);
          x=u(s);
    t=v(j)
        while(1)
      n=100;
      r=2;
      e=1*e^-4;
      Q2=vectorize(vpa(exp(-(n*w^4+e)*(t-h))*sinh(sqrt((n*w^4+e)^2-1/m*(EI*w^4+K))*(t-h))*cos(w*(x-mu*h))/sqrt((n*w^4+e)^2-1/m*(EI*w^4+K))));
      B0=inf;
    B1=dblquad(inline(Q2),0,t,v2,n);
    while abs(B0-B1)>e
        B0=B1;
        n=n*r;
        B1=dblquad(inline(Q2),0,t,v2,n);
    end
    B1
    end
    B1(s,j)=real(B1(s,j))
          end
  end
surf(u,v,B1)
hold on
grid on
xlabel('x')
ylabel('t')
zlabel('y')
title('函数图像')
还是不行!!帮忙看一下
发表于 2007-5-31 23:32 | 显示全部楼层
怎么这个老问题还没有解决?
程序中存在明显问题: while(1)死循环,一定要记得用break跳出.
另:如果得到的是非数或有奇异性,可改用离散求和试试.

评分

1

查看全部评分

 楼主| 发表于 2007-6-1 13:28 | 显示全部楼层

回复 #6 xjzuo 的帖子

对,问题是原函数弄到一定程度就是NAN,唉,我太衰了,导师都不耐烦了,郁闷死了。离散求和的原函数如果是这种得该怎么办?
 楼主| 发表于 2007-6-1 15:30 | 显示全部楼层

回复 #6 xjzuo 的帖子

谢谢大哥一直以来的帮助,今天灵感来了,运气也不错,居然出来了!!
再一次感谢你!!:victory: :@P :@P
 楼主| 发表于 2007-6-5 11:12 | 显示全部楼层

回复 #6 xjzuo 的帖子

答案出来,和结果不符合。原函数求和肯定是正数,这样直接为0 了。还有算Q2的过程中出现NAN,请高手帮我看看,程序有没有问题??
clear;
m=3.53*10^5;
EI=1.38*10^6;
K=1.7*10^8;
C=10^6;
E=1.5*10^9;
I=9.2*10^(-4);
Cs=6*10^9;
mu=16.67;  
P=4.9*10^7;
n=(Cs*I)/(2*m);
e=C/(2*m);
a=2*n*e-EI/m;
b=e^2-K/m;
r1=-a/(2*n^2)-1/n*sqrt((a/(2*n))^2-b);
r2=-a/(2*n^2)+1/n*sqrt((a/(2*n))^2-b);
u=16.67:166.7:1683.67;
  v=1:10:101;  
for s=1:length(u)
      for j=1:length(v);
           x=u(s);
    t=v(j);
     for w=1.2766:0.2:5.2766;
for h=0:0.05:t
    for p=1:length(w)
    for q=1:length(h)
        Q2(p,q)=exp(-(n*w(p)^4+e)*(t-h(q)))*sinh(sqrt((n*w(p)^4+e)^2-1/m*(EI*w(p)^4+K))*(t-h(q)))*cos(w*(x-mu*h(q)))/sqrt((n*w(p)^4+e)^2-1/m*(EI*w(p)^4+K))
  
    end
    end
end
     end
    B1(s,j)=sum(Q2(:))*0.2*0.05
      end
end
发表于 2007-6-5 14:59 | 显示全部楼层
思路对了,不过程序还是有明显问题,请仔细检查.
-------还需要自己多调节一下步长,积分限什么的......
另: 建议计算前最好画一下被积函数的图形,以便了解什么地方存在奇异性.

[ 本帖最后由 xjzuo 于 2007-6-5 15:06 编辑 ]
 楼主| 发表于 2007-6-5 18:01 | 显示全部楼层

回复 #10 xjzuo 的帖子

思路对了就好,谢谢了!!我再整整
 楼主| 发表于 2007-6-6 22:53 | 显示全部楼层

回复 #10 xjzuo 的帖子

麻烦你,再问一个问题:原函数求和是NAN了,看你的帖子的意思是用调积分限的办法。积分限是定了的,这样也可以调它的积分限?计算结果没问题吗??
谢谢了!
发表于 2007-6-7 09:11 | 显示全部楼层
我只是举个例子,调节步长什么的; 既然积分限已定,自然不要调了.
你的这个问题实在让人很怀疑是否可积-----调试发现相当古怪.
另: 去掉多余的 "for w=1.2766:0.2:5.2766; for h=0:0.05:t" 两个循环,
直接用"w=1.2766:0.2:5.2766; h=0:0.05:t" 向量式即可. ---自己试试,看能否得到结果.
我估计要寻求特殊的积分方法(奇异积分), 才能计算该问题.

评分

1

查看全部评分

 楼主| 发表于 2007-6-7 23:07 | 显示全部楼层

回复 #13 xjzuo 的帖子

奇异积分??我又得整几天了,看看相关的!
不过还是谢谢你,每次给我提供新的思路和想法!!
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-19 00:50 , Processed in 0.062172 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表