小木虫 --- 600万学术达人喜爱的学术科研平台

首页 >> 程序语言 >>【讨论】关于编程过程中出现奇点处理

【讨论】关于编程过程中出现奇点处理

在用C++编程过程中出现奇点,我的处理方法是直接分成两段来处理的,但是结果不是很好,望有相关经验的朋友指点指点

今日热帖

用户评论

说说吧,虫友们!:):):)

什么样的情况导致“奇点”?

比如说对1/x 在【-1,1】之间积分,在x=0处出现奇点,这时用c++语言如何处理

Preprocessing it before coding. No language will help you on that.

现在的问题就是这,积分表达式比较复杂,积分出现奇点,我想着从中间断开,比如在0处断开,从一个极小数(在c++中不等于零,如1.0e-10)积分到1,另一部分是从
-1积到这个极小数,不知道这样可行不。

Originally posted by wojinjin at 2009-9-10 17:46:
现在的问题就是这,积分表达式比较复杂,积分出现奇点,我想着从中间断开,比如在0处断开,从一个极小数(在c++中不等于零,如1.0e-10)积分到1,另一部分是从
-1积到这个极小数,不知道这样可行不。
OK

还有其它办法吗?难道只能这样了吗

感觉精度不高啊

好像有针对这类积分问题的数值积分算法。:rol:

Originally posted by nono2009 at 2009-9-10 14:26:
什么样的情况导致“奇点”?
按照这个积分为例,消除奇点的方法可以是:
整个积分过程用循环来表示,步长即为该积分式中的最小单位,也就是dx,再循环过程中可以根据出现奇点的情况作为既定条件,一旦成立就利用continue将该奇点处的积分给跳过,从而实现去除奇点的作用,

LS的方法可能带来很大误差。
这里需要特别的数值积分技巧。

那能说下有什么特别的技巧吗

Numerical Recipes (3rd Edition) 2007:
19.3 Integral Equations with Singular Kernels

猜你喜欢

学术必备
与600万学术达人在线互动!


扫描下载送金币