Questions tagged «nonlinear-equations»

非线性方程组的解。这些方程可以是代数方程或微分方程。

3

1
牛顿-克里洛夫什么时候不适合求解?
最近,我一直在比较来自scipy的不同非线性求解器,并且尤其对《 Scipy Cookbook》中的Newton-Krylov示例印象深刻,在该示例中,他们用大约20行代码来求解带有非线性反应项的二阶微分方程组。 我修改了示例代码,以解决半导体异质结构的非线性Poisson方程(也称为Poisson-Boltzmann方程,请参见本说明中的第17页),其形式为: d2ϕdx2−k(x)(p(x,ϕ)−n(x,ϕ)+N+(x))=0d2ϕdx2−k(x)(p(x,ϕ)−n(x,ϕ)+N+(x))=0 \frac{d^2\phi}{dx^2} - k(x) \left(p(x,\phi) - n(x,\phi) + N^{+}(x)\right) = 0 (这是传递给求解器的残差函数。) 这是一个静电问题,其中和是形式为n_i(x)e ^ {-(E_i(x,\ phi)-E_f)}的非线性函数。此处的细节并不重要,但关键是非线性函数随\ phi呈指数变化,因此残差函数可以在很大的范围内(10 ^ {-6}-10 ^ {16})发生微小变化。在\ phi中n(x,ϕ)n(x,ϕ)n(x,\phi)p(x,ϕ)p(x,ϕ)p(x,\phi)ni(x)e−(Ei(x,ϕ)−Ef)ni(x)e−(Ei(x,ϕ)−Ef)n_i(x) e^{-(E_i(x,\phi) - E_f)}ϕϕ\phi10−6−1016)10−6−1016)10^{-6} - 10^{16})ϕϕ\phi。 我用scipy的Newton-Krylov用数值方法求解了这个方程,但是它永远不会收敛(实际上,在计算雅可比方程时总是会报告一个错误)。我从Newton-Krylov求解器切换为fsolve(基于MINPACK hybrd),它第一次起作用! 牛顿-克里洛夫(Newton-Krylov)不适合某些问题的一般原因吗?输入方程是否需要以某种方式进行调节? 也许需要更多信息来发表评论,但是为什么您认为fsolve在这种情况下有效?

2
是否可以不使用Newton-Raphson迭代来求解非线性PDE?
我试图了解一些结果,并希望对解决非线性问题提出一些一般性意见。 Fisher方程(非线性反应扩散PDE), üŤ= düX X+ βu (1 − u )= F(你)üŤ=düXX+βü(1个-ü)=F(ü) u_t = du_{xx} + \beta u (1 - u) = F(u) 以离散的形式 ü′Ĵ= L u + βüĴ(1 − uĴ)= F(你)üĴ′=大号ü+βüĴ(1个-üĴ)=F(ü) u_j^{\prime} = \boldsymbol{L}\boldsymbol{u} + \beta u_j (1 - u_j) = F(\boldsymbol{u}) 其中大号大号\boldsymbol{L}是微分算子,你= (你j − 1,üĴ,üj + 1)ü=(üĴ-1个,üĴ,üĴ+1个)\boldsymbol{u}=(u_{j-1}, u_j, u_{j+1}) …

1
用数字解决难题方程组
我有一个要求解的个非线性方程组:ñnn f = (f 1,… ,f n)F(x)= af(x)=a\mathbf{f}(\mathbf{x})=\mathbf{a} F= (f1个,… ,fñ)x =( x1个,… ,xñ)f=(f1,…,fn)x=(x1,…,xn)\mathbf{f}=(f_1,\dots,f_n)\quad\mathbf{x}=(x_1,\dots,x_n) 该系统具有许多特性,使其特别难以操作。我正在寻找有关如何更有效地处理系统的想法。 为什么系统很难? 功能类似于此功能(但当然是多维的): 它们具有平坦的高原,由平坦的变化区域隔开。在2D中,您可以想象一个像这样:F一世fif_i 通常,每个具有两个平稳段,这些平稳段通过围绕维超平面的平滑变化而分开。 Ñ - 1F一世fif_in − 1n−1n-1 像牛顿那样的方法很难处理这样的函数,因为导数在高原上实际上为零。在多个维度上,我无法轻易找到都没有稳定的F一世fif_i区域,如果可以的话,就可以解决问题。二等分方法在效果很好,但是不能很好地推广到多个维度。n = 1n=1n=1 这些函数的计算速度非常慢。我正在寻找一种方法,它可以在尽可能少的迭代中获得根的合理近似值。 这些函数是使用蒙特卡洛方法计算的。这意味着每次计算它们时,我都会得到略有不同的随机值。导数很难估计​​。一旦我们距离根足够近,噪声将开始占主导地位,因此有必要使用平均来提高精度。理想情况下,应该有可能将方法推广到等效的随机近似版本(例如,Newton→Robbins-Monro)。 该系统是高维的。可以大到10-20。当,一种有效的方法可能是以下方法:尝试遵循和定义的轮廓并查看它们相交的位置。尚不清楚如何将其推广到高尺寸。n = 2 f 1(x 1,x 2)= 0 f 2(x 1,x 2)= 0ñnnn=2n=2n=2f1(x1,x2)=0f1(x1,x2)=0f_1(x_1,x_2) = 0f2(x1,x2)=0f2(x1,x2)=0f_2(x_1,x_2)=0 我对系统还有什么了解? 正是有一个根源(根据理论结果)。 我知道高原上的的值(假设任何为0和1 )。我fifif_iiii x i …

2
用于随机计算函数的方程求解的数值方法
有许多众所周知的数值方法可以求解类型为 例如二等分法,牛顿法等。F(x )= 0 ,X ∈ řñ,f(x)=0,x∈Rn, f(x) = 0, \quad x \in \mathbb{R}^n, 在我的应用程序中,是用随机方法计算的(结果是平均值)。F(x )f(x)f(x) 有什么数值方程求解方法可以很好地处理这种情况?也欢迎链接到任何类似情况的讨论。 我可以计算的精度很大程度上取决于,并且我很容易碰到一堵墙,在不显着增加计算时间的情况下无法提高精度。因此,我不能忽略的结果不精确的事实。这也将影响实际中可以找到的精度。F(x )f(x)f(x)XxxFffXxx

3
四次方程的解
对于四次方程的解是否有开放的C实现: ax⁴+bx³+cx²+dx+e=0ax⁴+bx³+cx²+dx+e=0ax⁴+bx³+cx²+dx+e=0 我正在考虑实施法拉利解决方案。在Wikipedia上,我读到该解决方案仅对某些可能的系数符号组合具有计算稳定性。但是也许我很幸运……通过使用计算机代数系统分析求解并导出到C,我得到了一个务实的解决方案。但是,如果有经过测试的实现,我更喜欢使用它。我搜索一种快速方法,但不希望使用一般的根查找器。 我只需要真正的解决方案。


2
关于非线性有限差分方程,冯·诺依曼的稳定性分析告诉我们什么?
我正在阅读一篇论文[1],他们在其中解决了以下非线性方程 ut+ux+uux−uxxt=0ut+ux+uux−uxxt=0\begin{equation} u_t + u_x + uu_x - u_{xxt} = 0 \end{equation} 使用有限差分法。他们还使用冯·诺依曼的稳定性分析来分析方案的稳定性。但是,正如作者意识到的那样,这仅适用于线性PDE。因此,作者通过“冻结”非线性项来解决此问题,即他们替换了非线性项。uuxuuxuu_x 与 UuxUuxUu_x,在哪里 UUU “被认为代表了 uuu”。 所以我的问题有两个: 1:如何解释此方法,为什么不起作用? 2:我们也可以更换 uuxuuxuu_x 与 uUxuUxuU_x 学期 UxUxU_x “被认为代表了 uxuxu_x“? 参考文献 Eilbeck,JC和GR McGuire。“正则化长波方程的数值研究I:数值方法。” Journal of Computational Physics 19.1(1975):43-57。

3
解决牛顿-拉夫森以外的非线性对流扩散系统的方法?
我正在做一个项目,在该项目中,我有两个通过各自的源条件进行adv-diff耦合的域(一个域增加质量,另一个域减去质量)。为简便起见,我正在对它们进行稳态建模。这些方程式是您的标准对流扩散输运方程式,其源项如下所示: ∂c1∂t=0=F1+Q1(c1,c2)∂c2∂t=0=F2+Q2(c1,c2)∂c1∂t=0=F1+Q1(c1,c2)∂c2∂t=0=F2+Q2(c1,c2) \frac{\partial c_1}{\partial t} = 0 = \mathcal{F}_1 + \mathcal{Q}_1(c_1,c_2) \\ \frac{\partial c_2}{\partial t} = 0 = \mathcal{F}_2 + \mathcal{Q}_2(c_1,c_2) 其中是物种扩散和对流通量,而是物种的源项。FiFi\mathcal{F}_iiiiQiQi\mathcal{Q}_iiii 我已经能够使用牛顿-拉夫森方法为我的问题编写求解器,并且已经使用块质量矩阵将两个域完全耦合,即: Fcoupled=[A100A2][c1,ic2,i]xi−[b1(c1,i,c2,i)b2(c1,i,c2,i)]Fcoupled=[A100A2][c1,ic2,i]⏟xi−[b1(c1,i,c2,i)b2(c1,i,c2,i)] F_{coupled} = \left[\begin{array}{c c} A_1 & 0 \\ 0 & A_2 \\ \end{array}\right]\underbrace{ \left[\begin{array}{c} c_{1,i} \\ c_{2,i} \\ \end{array}\right] }_{x_i} - \left[\begin{array}{c} b_1(c_{1,i}, c_{2,i}) \\ b_2(c_{1,i}, …
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.