计算科学

科学家使用计算机解决科学问题的问答

1
用于计算多项式余数的数值稳定算法
令和。我正在寻找渐近快速且数值稳定的算法来计算。在预期的应用中,f,g均为具有双精度浮点系数的密集多项式。但是,到目前为止,我对算法而不是实现更感兴趣。还赞赏用于计算数字多项式的GCD的算法的参考。f,g∈R[x]f,g∈R[x]f, g \in \mathbb{R}[x]degf>deggdeg⁡f>deg⁡g\deg f > \deg gfmodgfmodgf \bmod gf,gf,gf, g

1
LAPACK如何解决三对角线系统,为什么?
在我的项目中,我必须在每个时间步上求解几个三对角矩阵,因此拥有一个好的求解器至关重要。我做了自己的实现,只是Wikipedia上描述的经典方法。然后我尝试使用Lapack代替,令我惊讶的是它的速度更慢! 现在,在Lapack中,似乎通过LU分解进行求解,我不知道为什么,它不是比可能更复杂吗? 另外,我在nr.com的“数字食谱”书中找到了一种算法,该算法将系统递归地划分为较小的三对角线问题。看起来很有希望。那里还有其他东西吗? 更新:问题大小约为1000x1000。我使用了GotoBLAS,它也为您提供了Lapack 3.1.1库。问题不对称。我将Lapack例程用于一般的三对角矩阵。

5
7个非线性方程组的符号解
作为疾病传播数学模型的一部分,我有一个常微分方程组-7个方程组,以及控制它们行为的〜30个参数。我想找到稳定状态对于那些公式更改dx/dt = rest of the equation到0 = equation每个方程式使得一个简单的代数问题。这可以手工完成,但是我对这种计算却很可惜。 我试过使用Mathematica,它可以处理此问题的较小版本(请参阅此处),但是Mathematica正在解决该问题。有没有更有效的方法来解决这个问题?更有效的符号数学系统?还有其他建议吗? 一些更新(3月21日): 目标的确是以符号方式解决它们-数字答案很好,但目前最终目标是符号形式。 至少有一个平衡。我实际上并没有坐下来证明这一点,但是从设计上讲,它应该至少有一个琐碎的东西,一开始就没有人被感染。可能没有什么,除了这一点,但将让我的内容别的。 以下是正在讨论的实际方程组。 总之,我正在寻找7个变量组成的7个二次方程组的解的符号表达式。



1
使用快速傅立叶变换来解决带有混合边界条件的二维Poisson问题需要哪个傅立叶级数?
我听说,当边界条件都是一种类型时,可以使用快速傅立叶变换来解决泊松问题。考虑一个二维矩形域,假设两个相对的边具有周期性边界条件,而另两个具有狄里克雷条件。是否可以应用快速傅立叶变换来有效解决此问题?如果是这样,指数形式是否足够?如果没有,您会为这种情况推荐哪种求解器?

4
代数多重网格代码
我想了解有关代数多重网格方法(AMG)实施的更多详细信息。我一直在阅读“ A Multigrid Tutorial”,它相当不错,并解释了AMG的插值,粗网格运算符和粗网格选择的所有详细信息。但是,我认为没有什么比玩耍和阅读代码更重要了。 因此,我想问问是否有人知道任何经典的AMG“示例代码”,例如SF McCormick在“ Multigrid Methods”(SIAM)末尾提供的几何多重网格FORTRAN代码。很难获得像BoomerAMG这样的高质量和生产代码来更多地了解该方法。

4
A'A和AA'配方的条件编号
显示(Yousef Saad,稀疏线性系统的迭代方法,第260页)cond(A′A)≈cond(A)2cond(A′A)≈cond(A)2cond(A'A) \approx cond(A)^2 这是真的为呢?AA′AA′AA' 如果是且,我观察到AAAN×MN×MN\times MN≪MN≪MN \ll Mcond(A′A)≫cond(AA′)cond(A′A)≫cond(AA′)cond(A'A) \gg cond(AA') 在这种情况下,以表示是否意味着更可取?AA′AA′AA'

1
具有周期边界条件的薛定inger方程
我有以下几个问题: 我正在尝试使用曲柄nicolson离散化解决一维Schrodinger方程,然后求反三对角矩阵。我的问题现在演变为周期性边界条件的问题,因此我修改了代码以使用Sherman Morrison算法。 假设v当我希望反转三对角矩阵时,在每个时间步中都存在我的RHS。的大小v是我在空间上拥有的网格点的数量。当我设定v[0]并v[-1]按照我的周期性情况的要求互相称呼时,我的方程式崩溃了。我不知道为什么会这样。我正在使用python2.7和scipy的内置solve_banded来求解方程。 这引出了我的第二个问题:我使用python是因为它是我最了解的语言,但是我发现它运行起来很慢(即使使用numpy和scipy提供的优化)。我已经尝试使用C ++,因为我对此相当熟悉。我以为我会使用经过BLAS优化的GSL,但没有找到任何文档来创建复杂向量或使用此类复杂值向量求解三对角矩阵。 我希望在程序中使用对象,因为我觉得这是以后进行泛化以包含波动函数之间的耦合的最简单方法,因此我坚持使用面向对象的语言。 我可以尝试手动编写三对角矩阵求解器,但是在python中编写时遇到了问题。随着时间的推移,随着时间的推移,我逐渐发展,错误不断累积,使我无聊。考虑到这一点,我决定使用内置方法。 任何建议深表感谢。 编辑:这是相关的代码段。该符号是从Wikipedia的页面上引用的三对角矩阵(TDM)公式。v是每个时间步长的crank nicolson算法的RHS。向量a,b和c是TDM的对角线。定期案例的校正算法来自CFD Wiki。我做了一些重命名。他们所说的u,v我称之为U,V(大写)。我称q为补数,y为临时解,而实际解为self.currentState。v [0]和v [-1]的分配是引起问题的原因,因此已被注释掉。您可能会忽略伽玛系数。它们是用于建模Bose Einstein冷凝物的非线性因子。 for T in np.arange(self.timeArraySize): for i in np.arange(0,self.spaceArraySize-1): v[i] = Y*self.currentState[i+1] + (1-2*Y)*self.currentState[i] + Y*self.currentState[i-1] - 1j*0.5*self.timeStep*potential[i]*self.currentState[i] - self.gamma*1j*0.5*self.timeStep*(abs(self.currentState[i])**2)*self.currentState[i] b[i] = 1+2*Y + 1j*0.5*self.timeStep*potential[i] + self.gamma*self.timeStep*1j*0.5*(abs(self.currentState[i])**2) #v[0] = Y*self.currentState[1] + (1-2*Y)*self.currentState[0] + Y*self.currentState[-1] - 1j*0.5*self.timeStep*potential[0]*self.currentState[0]# …

2
迭代方法在对角占优矩阵上的安全应用
假定以下线性系统为 ,其中是已知为正定的加权Laplacian ,其一维零空间跨度为,的平移方差,即不会改变函数值(其导数为)。的唯一正项在其对角线上,这是负非对角线项的绝对值的总和。Lx=c,(1)(1)Lx=c,Lx=c,\tag1LLLsemi−semi−semi-1n=(1,…,1)∈Rn1n=(1,…,1)∈Rn1_n=(1,\dots,1)\in\mathbb{R}^nx∈Rnx∈Rnx\in\mathbb{R}^{n}x+a1nx+a1nx+a1_n(1)(1)(1)LLL 我发现一个高引用率在该领域的学术工作,虽然是对角占优,仍然可以安全使用,如共轭梯度,高斯-塞德尔,雅可比,的方法来解决。的理由是,由于平移不变的,一个是安全的一个固定点(例如,移除第一行和列和从第一个条目),从而转换到一个对角占优矩阵。无论如何,用以的完整形式求解原始系统。LLLnot strictlynot strictlynot~strictly(1)(1)(1)LLLcccLLLstrictlystrictlystrictly(1)(1)(1)L∈Rn×nL∈Rn×nL\in\mathbb{R}^{n\times n} 这个假设是正确的吗?如果是,替代的理由是什么?我试图了解方法的收敛性如何。 如果Jacobi方法与收敛,那么关于迭代矩阵的谱半径,在是对角矩阵且对角线中有对角矩阵,有什么状态?是,因此从一般的收敛担保不同的?我问这个,因为的特征值对角线上带有拉普拉斯矩阵应当在范围内。(1)(1)(1)ρρ\rhoD−1(D−L)D−1(D−L)D^{-1}(D-L)DDDLLLρ(D−1(D−L)≤1ρ(D−1(D−L)≤1\rho(D^{-1}(D-L)\leq1ρ(D−1(D−L))&lt;1ρ(D−1(D−L))&lt;1\rho(D^{-1}(D-L))<1D−1LD−1LD^{-1}L[0,2][0,2][0, 2] 从原始作品来看: .................................................... 在每次迭代中,我们通过求解以下线性系统来计算新的布局(x(t +1),y(t + 1)): 在不失一般性的前提下,我们可以固定以下位置之一传感器(利用局部应力的平移自由度)并获得严格对角的主导矩阵。因此,我们可以安全地使用Jacobi迭代来求解(8)L⋅x(t+1)=L(x(t),y(t))⋅x(t)L⋅y(t+1)=L(x(t),y(t))⋅y(t)(8)(8)L·x(t+1)=L(x(t),y(t))·x(t)L·y(t+1)=L(x(t),y(t))·y(t) L · x(t + 1) = L(x(t),y(t)) · x(t) \\ L · y(t + 1) = L(x(t),y(t)) · y(t) \tag 8 ................................................... 在上文中,“迭代”的概念与底层最小化过程有关,不要与Jacobi迭代相混淆。因此,该系统由Jacobi(迭代)求解,然后将该解决方案购买到(8)的右侧,但是现在进行底层最小化的另一次迭代。我希望这可以澄清问题。 请注意,我发现哪个迭代线性求解器对正半定矩阵收敛?,但正在寻找更详尽的答案。

1
选择将哪个函数积分为奇数的数字正交?
例如,我想数值计算的范数在某些域中包括零,我试过高斯求积,但失败了,它与使用球坐标进行积分的单位球上的实范数相差很远,有什么好办法吗?对于具有重入角的区域,该问题经常出现在有限元计算玩具问题中。谢谢。L2L2L^2u=1(x2+y2+z2)1/3u=1(x2+y2+z2)1/3\displaystyle u = \frac{1}{(x^2+y^2+z^2)^{1/3}}L2L2L^2

2
数值积分,可能除以“零”
我正在尝试整合 ∫1个0Ť2 n + 2经验值(α[R0Ť) dŤ∫01t2n+2exp⁡(αr0t)dt\int^1_0 t^{2n+2}\exp\left({\frac{\alpha r_0}{t}}\right)dt 这是一个简单的转换 ∫∞1个X2 n经验值(- α[R0X )dX∫1∞x2nexp⁡(−αr0x)dx\int^{\infty}_1 x^{2n}\exp(-\alpha r_0 x)dx 使用 t =1个Xt=1xt = \frac1{x}因为很难在数值上近似不正确的积分。但是,这确实导致了评估新积分接近零的问题。看到间隔只有长度1(这样可比dŤdtdt 可以做得很小),但是当积分接近零时我应该考虑什么呢? 在某种程度上,我认为 ∫1个ϵŤ2 n + 2经验值(α[R0Ť) dŤ∫ϵ1t2n+2exp⁡(αr0t)dt\int^1_\epsilon t^{2n+2}\exp({\frac{\alpha r_0} {t}})dt 是个好主意 ϵϵ\epsilon是一些小数目。但是,我应该选择哪个号码?应该是机器epsilon吗?用机器epsilon划分的数字是否正确?此外,如果我的机器ε(或接近它)的除法给出了一个非常大的数字,则取经验值(1个ϵ)exp⁡(1ϵ)\exp(\frac{1}{\epsilon}) 会变得更大。 我应该如何处理呢?有没有一种方法可以对此函数定义明确的数值积分?如果没有,整合功能的最佳方法是什么?

3
没有块结构的不确定系统的迭代方法
矩阵的不确定系统出现在例如混合有限元的鞍点问题离散化中。然后可以将系统矩阵以以下形式输入 (一个乙乙ŤC)(一个乙Ť乙C)\begin{pmatrix} A & B^t \\ B & C\end{pmatrix} 哪里 一个一个A 是负的(半)定的, CCC 是正的(半)定的, 乙乙B是任意的。当然,根据惯例,您可以使用确定性条件,但这几乎就是这些矩阵的结构。 对于这些方法,可以采用Uzawa的方法,实际上是将系统转换为等效的半确定系统的“技巧”,该系统可以通过共轭梯度,梯度下降等解决。 我面临一个不确定的系统,它没有这样的块结构。Uzawa型方法不适用于这种情况。我知道Paige&Saunders引入的最小残差方法(MINRES),这只是一个三项递归,而且似乎易于实现。 问题:例如,MINRES通常是原型制作的好选择吗?有实际意义吗?目前,预处理不是中心问题。

1
规则网格上的嵌套解剖
当使用直接因子分解方法求解稀疏线性系统时,所使用的排序策略会显着影响因子中非零元素的填充因子。一种这样的排序策略是嵌套解剖。我想知道是否有可能仅在网格参数的情况下提前提出嵌套的解剖顺序(假设具有一阶差异的M×N方形有限差分网格)。 编辑 我刚刚发现有执行此操作的代码:http : //www.cise.ufl.edu/research/sparse/meshnd/

7
有科学期刊出版物的标准评级系统吗?
我听说有些期刊被评为比其他期刊更高。这是真的?如果是这样,评判一个同行评审期刊相对于另一期刊的价值是什么?我如何找到它的等级?如果我的出版物被知名度低于SIAM评论的期刊接受,那么它的“价值”会降低吗?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.