日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

斯特芬森迭代法(Python)

發布時間:2025/4/16 python 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 斯特芬森迭代法(Python) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

簡述

斯特芬森迭代法,本質上就使用了埃特金加速法的不動點迭代法。

GitHub:https://github.com/Sean16SYSU/Algorithms4N

Steffensen’s method

Aitken 加速方法

x1=φ(x0)x_1 = \varphi(x_0)x1?=φ(x0?)
再結合微分中值定理,有
x1?x?=φ(x0)?φ(x?)=φ′(ξ)(x0?x?)x_1 - x^* = \varphi(x_0) - \varphi(x^*) = \varphi'(\xi)(x_0 -x^*)x1??x?=φ(x0?)?φ(x?)=φ(ξ)(x0??x?)
假設φ′(ξ)\varphi'(\xi)φ(ξ)變化不大話,再代入有,
x2?x?=φ(x1)?φ(x?)=φ′(ξ)(x1?x?)x_2 - x^* = \varphi(x_1) - \varphi(x^*) = \varphi'(\xi)(x_1 -x^*)x2??x?=φ(x1?)?φ(x?)=φ(ξ)(x1??x?)
則,消去φ′(ξ)\varphi'(\xi)φ(ξ)后,得到,
x?=x0?(x1?x0)2x2?2x1+x0x^* = x_0 - \frac{(x_1 - x_0)^2}{x_2 - 2x_1+x_0}x?=x0??x2??2x1?+x0?(x1??x0?)2?

斯特芬森迭代法

使用了Aitken加速的不動點迭代法

{yk=φ(xk),zk=φ(yk)xk+1=xk?(yk?xk)2zk?2yk+xk\left\{ \begin{aligned} y_k = \varphi(x_k), z_k = \varphi(y_k) \\ x_{k+1} = x_k - \frac{(y_k - x_k)^2}{z_k - 2y_k+x_k} \end{aligned} \right. ??????yk?=φ(xk?),zk?=φ(yk?)xk+1?=xk??zk??2yk?+xk?(yk??xk?)2??

可以結合不動點迭代法來看,點擊訪問

代碼

關于求解根號3

x = 1 for i in range(5):y = x - 0.1 * (x ** 2 - 3)z = y - 0.1 * (y ** 2 - 3)x = x - (y-x)**2 / (z-2*y+x) print(x)

輸出的結果過是:

1.7320508075688767

畫圖和一般的作對比:

TIME = 5 x = 1 data = [] for i in range(TIME):data.append(x)y = x - 0.1 * (x ** 2 - 3)z = y - 0.1 * (y ** 2 - 3)x = x - (y-x)**2 / (z-2*y+x)data.append(x) plt.plot(data, label='stf')data = [] x = 1 for i in range(TIME * 5):data.append(x)x = x - 0.1 * (x ** 2 - 3) data.append(x) print(x)plt.plot(data, label='iter')plt.legend() plt.show()

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的斯特芬森迭代法(Python)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。