迭代方法的复杂性?

发布于 2024-11-19 13:05:42 字数 572 浏览 4 评论 0原文

问题:

我想实现Jacobi 方法。它类似于不动点方法:

Xn+1 = P Xn +Q

if X* verify X=PX +Q 

then if Xn converge then it converge to X*

假设我成功找到 alpha <1,使得:

||PX|| < alpha * ||X|| (通常 alpha 是 P 的特征值的最大值,但这里并不重要)

然后我的方法将收敛。

复杂度

我想计算这种算法的复杂度。假设我想要 ||Xn-X*||小于 epsilon。 对于给定的 alpha,我可以计算 n,从而验证上述不等式。但就我而言,我可以证明这样的阿尔法存在,但我没有他的价值。

是否有在不明确知道 alpha 的情况下计算此类迭代方法的复杂性的方法?

提前致谢

Problem:

I want to implement the Jacobi method. It is similar to a fix point method:

Xn+1 = P Xn +Q

if X* verify X=PX +Q 

then if Xn converge then it converge to X*

let say I succeed in finding alpha <1 such that :

||PX|| < alpha * ||X|| (usually alpha is the max of the eigen values of P but it doesn't matter here)

Then my method will converge.

Complexity:

I would like to calculate the complexity of such an algorithm. let say I want ||Xn-X*|| to be less than epsilon.
for one given alpha I can calculate n such that the above inequality is verified. But in my case I can prove such alpha exist but I don't have his value.

Are there methods for calculating complexity for such iterative methods without knowing explicitely alpha ?

Thanks in advance

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

聆听风音 2024-11-26 13:05:42

没有更多信息:否。

为了有一个界限,您需要证明该过程在所有 alpha 值上均匀收敛。但这种收敛并不存在(除非你有更强的条件,例如 alpha < 0.9

不知道为什么你不能生成一个建设性的过程来找到 alpha 的上限 <1 if你可以证明存在性。证明一个方法收敛只是简单地通过明确地找到其值来找到一个相关范数,其中矩阵范数

证明

epsilon > 0
假设我们可以通过一些 f(x) 来限制迭代次数,其中 f: R+ --> N
即,如果e_n = ||Xn - X*||,我们假设对于所有n > f(ε)。 e_n < epsilon

我们将证明存在一个有效的 alpha 和一个 N ,使得 N > f(ε)。 e_N> epsilon

关键的观察结果是要注意我们的函数 f 与 alpha 的值无关。我们假设迭代过程存在某个上限,但不知道 alpha 的值,只知道 alpha<1。因此,找到满足该条件的 alpha 就足够了,该 alpha 打破了对 f 的初始假设,从而达到了我们想要的矛盾。

这一点很微妙,因为有效边界 f 的存在实际上取决于 alpha,因为假设它限制基于 alpha 所在矩阵的迭代。是“定义”的。尽管由于 alpha 本身未知,我们必须证明 f 对于 alpha 的所有值都有效,这就是我们从正常收敛转向一致收敛的地方。

我们选择了 epsilon,并采用 N = f(epsilon)+1
根据我们的假设e_N < epsilon,所以我们简单地取 alpha = (2*epsilon/e_0) ^ 1/2N 假设 2*epsilon/e_0 1 否则我们可以将 epsilon 替换为任何值 << 1.

e_n+1 = || X(n+1) - X* ||
      = || PXn + Q - PX* - Q ||
      = || P(Xn - X*) ||
      <= ||P|| ||Xn-X*||
      = ||P|| e_n

正如我所说,在没有额外信息的情况下,很容易构造 P 使得上面的不等式实际上相等。例如,P = I*k 产生所有实数 k 的相等性。因此存在 P 使得 e_n+1 = ||P|| e_n = ... = ||P||^(n+1) * e_0

我们最后的观察结果是,即使 ||PX|| < alpha * ||X|| 可能存在 X 使得: ||PX|| > alpha^2 * ||X||
例如,如果P = I * alpha,我们知道alpha<1并且前述对于所有X都成立。 (同样,由于 P 上没有其他信息,因此可能存在这样的 X 就足够了。)

如果我们插入 alpha > 我们得出以下结论是可能的:

e_N = ||P||^N * e_0
    > (alpha^2)^N * e_0
    = alpha^2N * e_0
    = 2*epsilon  // since alpha = (2*epsilon/e_0) ^ 1/2N
    > epsilon
    > e_N // since we assumed we had a bound, and e_N < epsilon

数字不能大于其自身。

量子ED。

Without any more information: No.

In order for there to be a bound you need to prove uniform convergence of the process over all alpha values. But that convergence doesn't exist (unless you have a stronger condition, for example alpha < 0.9

Not sure why you can't generate a constructive process to find an upper bound < 1 on alpha if you can prove existence. Mostly proving that a method converges is simply finding a relevant norm in which the matrix norm < 1 by explicitly finding its value.

In any case, here's a proof by contradiction.

PROOF

Let epsilon > 0.
Let's assume that we can bound the number of iterations by some f(x) where f: R+ --> N.
I.e. If e_n = ||Xn - X*|| we assume that for all n > f(epsilon). e_n < epsilon.

We will show that there exists a valid alpha and an N such that N > f(epsilon). e_N > epsilon.

The key observation is to note that our function f is independent of alpha's value. We assume the existence of some upper bound on the iterative process without knowing alpha's value, only that alpha<1. So it is enough to find an alpha satisfying that condition that breaks the initial assumptions on f to reach our desired contradiction.

This point is delicate, since the existence of a valid bound f is actually dependant on alpha since the assumption is that it bounds the iterations which are based on the matrix on which alpha is "defined". Although since alpha itself is unknown we must prove that f is valid for all values of alpha, and that's where we move from normal convergence to uniform convergence.

We have chosen our epsilon, and we take N = f(epsilon)+1.
According to our assumption e_N < epsilon, so let's simply take alpha = (2*epsilon/e_0) ^ 1/2N assuming 2*epsilon/e_0 < 1 otherwise we could substitute epsilon with any value < 1.

e_n+1 = || X(n+1) - X* ||
      = || PXn + Q - PX* - Q ||
      = || P(Xn - X*) ||
      <= ||P|| ||Xn-X*||
      = ||P|| e_n

As I stated, given no extra information it's easy to construct P such that the inequality above is actual equality. For example P = I*k yields equality for all real k. Therefore there exist P such that e_n+1 = ||P|| e_n = ... = ||P||^(n+1) * e_0

Our last observation is that even if ||PX|| < alpha * ||X|| there may exist X such that: ||PX|| > alpha^2 * ||X||.
For example if P = I * alpha we know that alpha<1 and the aforementioned is true for all X. (Again, since there is no other information on P, the fact that there may exist such X is enough.)

If we plug in our alpha in we conclude that the following is possible:

e_N = ||P||^N * e_0
    > (alpha^2)^N * e_0
    = alpha^2N * e_0
    = 2*epsilon  // since alpha = (2*epsilon/e_0) ^ 1/2N
    > epsilon
    > e_N // since we assumed we had a bound, and e_N < epsilon

A number cannot be larger than itself.

QED.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文