I wish to compute the Taylor series expansion of the following iteration method xk+1=xk−f′(xk)−1f(xk) up to four terms of error (ek=xk−α). When this is a scalar iteration, I very simply write the following
ClearAll["Global`*"]
f[e_] := df*(e^1 + c2 e^2 + c3 e^3 + c4 e^4 + c5 e^5);
fe = f[e];
f1e = f'[e];
Series[f1e^-1, {e, 0, 4}]*df // Simplify
u = e - Series[fe/f1e, {e, 0, 4}] // Simplify
and obtain correct results f(xk)−1=[1−2c2ek+(4c22−3c3)e2k −4(2c23−3c2c3+c4)e3k+(16c24−36c22c3+9c32+16c2c4−5c5)e4k]f′(α)−1. But, how to do this for the multi-dimensional case. That is, when the coefficients c2,c3,c4, and even df=f′(α)−1 are all matrices (note that e.g. c2=12!f′(α)−1f(2)(α)). By hand, I obtain the following correct results: f(xk)−1=(I−2c2ek+(4c22−3c3)e2k+(6c3c2+6c2c3−8c23−4c4)e3k+(8c4c2+9c32+8c2c4−5c5−12c3c22−12c2c3c2−12c22c3+16c24)e4k)f′(α)−1 and ek+1=xk+1−α=−c2e2k+(2c22−2c3)e3k+(−4c23+4c2c3+3c3c2−3c4)e4k+O(e5k).
So, my question is how to handle this non-commutative multiplication inside Series[]
(e.g. c2c3 is not equal to c3c2 in this case)? I also tried to apply ∗∗, but I failed. Any suggestions or tricks to solve this problem will be appreciated fully.
I also saw the following posts in MathematicaStackExchange, but they were not useful for this problem, How to make noncommutative multiplication agree with commutative multiplication and Noncommutative multiply- expand expression.
Comments
Post a Comment