Questions tagged «numerical-analysis»

构造和分析算法以计算连续问题的近似离散解。一个典型的例子是通过差商对导数进行逼近。

2
有限元奇摄动反应扩散问题的振动性
当FEM-离散和解决的反应-扩散问题,例如, 与 0 < ε « 1(奇异扰动),离散问题的解决方案将典型地显示出振荡层与边界邻近的。与 Ω = (0 ,1 ), ε = 10 - 5和线性有限元素,将溶液 û ħ模样- ε Δ Ü + Ü = 1 上 Ωu = 0 在 ∂Ω−εΔu+u=1 on Ωu=0 on ∂Ω - \varepsilon \Delta u + u = 1 \text{ on } \Omega\\ u = …

1
线搜索和信任区域算法的尺度不变性
在Nocedal&Wright的有关数值优化的书中,第2.2节(第27页)中有一条语句:“一般而言,对于线搜索算法而言,保留比例不变性要比对信任区域算法要容易得多”。在同一部分中,他们讨论使用新变量,这些变量是原始变量的缩放版本,可以同时帮助行搜索和信任区域。另一种方法是预处理。对于信任区域方法,预处理等效于具有椭圆形信任区域,因此可提供尺度不变性。但是,对于行搜索的预处理,类似的直觉尚不清楚。线搜索以哪种方式更适合尺度不变性?有一些实际考虑吗? 另外,我对信任区域方法的预处理有疑问。对于病情严重的问题,好的预处理器会减少外部Newton迭代和内部CG迭代的次数,还是仅减少后者?由于信任区域在原始空间中为椭圆形,因此良好的预处理器应会导致椭圆形更好地匹配景观。我认为这可能会迫使算法朝更好的方向发展,从而减少外部牛顿迭代的次数。这是正确的吗?

1
将Runge-Kutta方法应用于二阶ODE
如何用Runge-Kutta第四阶代替Euler方法来确定自由落体运动的重力大小不是恒定的(例如,从地面10000 km处自由落体)? 到目前为止,我通过欧拉方法编写了简单的积分: while() { v += getMagnitude(x) * dt; x += v * dt; time += dt; } x变量表示当前位置,v表示速度,getMagnitude(x)返回x位置的加速度。 我尝试实现RK4: while() { v += rk4(x, dt) * dt; // rk4() instead of getMagintude() x += v * dt; time += dt; } rk4()函数体在哪里: inline double rk4(double tx, double tdt) …

1
积分变换求逆的数值方法?
我正在尝试将以下整数转换数字化: F(y)=∫∞0yexp[−12(y2+x2)]I0(xy)f(x)dxF(y)=∫0∞yexp⁡[−12(y2+x2)]I0(xy)f(x)dxF(y) = \int_{0}^{\infty} y\exp{\left[-\frac{1}{2}(y^2 + x^2)\right]} I_0\left(xy\right)f(x)\;\mathrm{d}x 因此,对于给定的F(y)F(y)F(y)我需要近似f(x)f(x)f(x) ,其中: f(x)f(x)f(x)和F(y)F(y)F(y)是实数和正数(它们是连续的概率分布) x,yx,yx,y是实数和正数(它们是大小) 我现在有一个非常凌乱而蛮力的方法: 我定义f(x)f(x)f(x)和样条曲线在一系列点上,通过随机采样“猜测”样条曲线点的值,从而得出预测的F(y)F(y)F(y)。我写的基本遗传算法使预测的和测量的F(y)F(y)F(y)数组之间的差异最小。然后,我将算法收敛到的f(x)f(x)f(x)作为反演的答案。 这种方法在某些简单的情况下效果很好,但对我来说却很杂乱,而且不够健壮。 谁能为我提供解决此问题的更好方法的指导? 感谢您的时间和帮助! [x张贴于计算机科学]

3
如何使用有限体积一阶迎风方案处理非恒定系数?
从守恒形式的平流方程开始。 üŤ= (a (x )u )Xut=(a(x)u)x u_t = (a(x)u)_x 其中是取决于空间的速度,而是守恒物种的浓度。u一个(x )a(x)a(x)üuu 离散通量(在网格点之间的像元边缘上定义通量)给出 u t = 1F= 一个(x )uf=a(x)uf=a(x)uüŤ= 1H(fj − 12- ˚Fj + 12)ut=1h(fj−12−fj+12) u_t = \frac{1}{h}\left( f_{j-{\frac{1}{2}}} - f_{j+{\frac{1}{2}}} \right) 使用一阶迎风,我们将通量近似为 Fj − 12= a (xj − 12)你j − 1Fj + 12= a (xj + 12)你Ĵfj−12=a(xj−12)uj−1fj+12=a(xj+12)uj f_{j-{\frac{1}{2}}} = a(x_{j-\frac{1}{2}})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
关于log(x)的更快近似
不久前,我编写了一个代码,试图在不使用库函数的情况下计算。昨天,我正在查看旧代码,并尝试使其尽快(正确)。到目前为止,这是我的尝试:升Ò 克(x )log(x)log(x) const double ee = exp(1); double series_ln_taylor(double n){ /* n = e^a * b, where a is an non-negative integer */ double lgVal = 0, term, now; int i, flag = 1; if ( n <= 0 ) return 1e-300; if ( n * ee < 1 …

2
要使SVD稳定添加多少正则化?
我一直在使用英特尔MKL的SVD(dgesvd通过SciPy的),并注意到,当我改变之间的精确结果是显著不同float32而float64当我的基质被严重空调/没有满秩。我应该添加一些关于最小化正则化的指南,以使结果对float32-> float64变化不敏感吗? 特别是 A = UdVŤA=UDVTA=UDV^{T}, 我看到 大号∞L∞L_\infty 规范 VŤXVTXV^{T}X当我在float32和之间更改精度时,会移动约1 float64。大号2L2L_2 规范 一个AA 是 10510510^5 在784个总数中,约有200个零特征值。 在做SVD λ 我+ AλI+A\lambda I + A 与 λ =10− 3λ=10−3\lambda=10^{-3} 使差异消失了。

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。

1
迭代的“求解器”
我无法想象我是第一个考虑以下问题的人,因此我会对参考感到满意(但始终希望获得完整,详细的答案): 假设您有一个对称的正定 Σ∈Rn×nΣ∈Rn×n\Sigma \in \mathbb{R}^{n \times n}。 nnn 被认为是非常大的,所以 ΣΣ\Sigma在内存中是不可能的。但是,您可以评估ΣxΣx\Sigma x,对于任何 x∈Rnx∈Rnx \in \mathbb{R}^{n}。给一些x∈Rnx∈Rnx \in \mathbb{R}^{n},您想找到 xtΣ−1xxtΣ−1xx^t\Sigma^{-1}x。 我想到的第一个解决方案是找到 Σ−1xΣ−1x\Sigma^{-1}x使用(说)共轭梯度。但是,这似乎有点浪费-您寻找标量,并在此过程中找到一个巨大的向量RnRn\mathbb{R}^{n}。提出一种直接计算标量的方法似乎更有意义(即不通过Σ−1xΣ−1x\Sigma^{-1}x)。我正在寻找这种方法。

1
Hessenberg矩阵的指数计算算法
我对使用krylov方法计算ODE标记系统的解决方案感兴趣,如[1]所示。这种方法涉及与指数有关的函数(所谓的 -functions)。它实质上包括通过使用Arnoldi迭代构造一个Krylov子空间并将该函数投影到该子空间上来计算矩阵函数的作用。这减少了计算较小的Hessenberg矩阵的指数的问题。φφ\varphi 我知道有几种算法可以计算指数(请参见[2] [3]及其参考)。我想知道是否有一种特殊的算法可以利用矩阵是Hessenberg的事实来计算指数? [1] Sidje,RB(1998)。Expokit:用于计算矩阵指数的软件包。ACM Transactions on Mathematical Software(TOMS),24(1),130-156。 [2] Moler,C.和Van Loan,C.(1978)。十九种计算矩阵指数的可疑方法。SIAM评论,20(4),801-836。 [3] Moler,C.和Van Loan,C.(2003)。25年后的十九种方法来计算矩阵的指数。SIAM评论,45(1),3-49。

2
帮助在线搜索中确定三次插值和二次插值
我正在执行行搜索,作为准牛顿BFGS算法的一部分。在行搜索的第一步中,我使用三次插值法将其移近局部最小化器。 让 F:R → R ,f∈C1个f:R→R,f∈C1f : R \rightarrow R, f \in C^1是感兴趣的功能。我想找到一个X∗x∗x^* 这样 f′(x∗)≈0f′(x∗)≈0f'(x^*) \approx 0。 让 f(xk)f(xk)f(x_k), f′(xk)f′(xk)f'(x_k), f(xk+1)f(xk+1)f(x_{k+1}) 和 f′(xk+1)f′(xk+1)f'(x_{k+1})被知道。还假设0≤xk&lt;x∗&lt;xk+10≤xk&lt;x∗&lt;xk+10\le x_k<x^*<x_{k+1}。我适合三次多项式Q(x)=ax3+bx2+cx+dQ(x)=ax3+bx2+cx+dQ(x)=ax^3+bx^2+cx+d 以便 Q(0)=f(xk)Q(0)=f(xk)Q(0)=f(x_k), Q′(0)=f′(xk)Q′(0)=f′(xk)Q'(0)=f'(x_k), Q(xk+1−xk)=f(xk+1)Q(xk+1−xk)=f(xk+1)Q(x_{k+1}-x_{k})=f(x_{k+1}) 和 Q′(xk+1−xk)=f′(xk+1)Q′(xk+1−xk)=f′(xk+1)Q'(x_{k+1}-x_{k})=f'(x_{k+1})。 我求解二次方程: (1):Q′(x∗−xk)=0(1):Q′(x∗−xk)=0(1): Q'(x^*-x_k) = 0 为了我的追寻 x∗x∗x^* 使用封闭式解决方案。 上面的方法在大多数情况下效果很好,除了 f(x)=O(x2)f(x)=O(x2)f(x)=\mathcal{O}(x^2) 作为封闭式解决方案 (1)(1)(1) 除以 aaa 变得非常接近或完全 000。 我的解决方案是看 aaa 如果它“太小”,只需对二次多项式的极小值采用封闭形式的解 Q2(x)=bx2+cx+dQ2(x)=bx2+cx+dQ_2(x)=bx^2+cx+d …

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.