迭代方法的复杂性?
问题:
我想实现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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
没有更多信息:否。
为了有一个界限,您需要证明该过程在所有 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.正如我所说,在没有额外信息的情况下,很容易构造
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
> 我们得出以下结论是可能的:数字不能大于其自身。
量子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)
wheref: R+ --> N
.I.e. If
e_n = ||Xn - X*||
we assume that for alln > f(epsilon). e_n < epsilon
.We will show that there exists a valid alpha and an
N
such thatN > 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 thatalpha<1
. So it is enough to find an alpha satisfying that condition that breaks the initial assumptions onf
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 thatf
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 takealpha = (2*epsilon/e_0) ^ 1/2N
assuming2*epsilon/e_0 < 1
otherwise we could substitute epsilon with any value < 1.As I stated, given no extra information it's easy to construct
P
such that the inequality above is actual equality. For exampleP = I*k
yields equality for all realk
. Therefore there existP
such thate_n+1 = ||P|| e_n = ... = ||P||^(n+1) * e_0
Our last observation is that even if
||PX|| < alpha * ||X||
there may existX
such that:||PX|| > alpha^2 * ||X||
.For example if
P = I * alpha
we know thatalpha<1
and the aforementioned is true for allX
. (Again, since there is no other information onP
, the fact that there may exist suchX
is enough.)If we plug in our
alpha
in we conclude that the following is possible:A number cannot be larger than itself.
QED.