正割法是近似的牛頓切線法,把求導用斜率代替,用切線不斷逼近函數的單根。

示意圖

迭代的起點

推廣的公式

核心code,直接放上去

眼熟不

你可以編寫一個簡單的函數來測試這個功能
就是這么簡單,當然了字數這么少,還成為不了一篇原創文章。再寫一個小程序。

我們可以使用Matploatlib的繪圖功能模擬

引入

寫好要計算的函數
def Y(x):
global i
i = i+1
plt.plot([x, x], [0, (x**3-x-1)])
plt.plot([x, result(x)], [(x**3-x-1), 0])
temp = round(x-result(x), 5)
if(temp == 0.0):
print('正割法第', i, '次')
print('解得:', round(x, 5))
x = result(x)
y = (result(x)**3 - result(x) - 1)
plt.plot(x, y, ".")
plt.plot(x, y, "g-")
plt.annotate("(1.32472,1.32472)", xy=(result(x), (result(x)**3 - result(x) - 1)),
xytext=(result(x) - 0.5, (result(x)**3 - result(x) - 1) + 2), color='k', fontsize=10)
else:
Y(result(x))
Y(2.7)
x = 0
plt.title("secant method")
x = np.linspace(0, 3)
plt.xlim(0, 3) # 固定坐標
plt.ylim(-5, 20)
plt.plot(x, x**3-x-1, "b-")
plt.grid(True)
plt.plot([0, 3], [0, 0], "--")
plt.show()
審核編輯:劉清
-
算法
+關注
關注
23文章
4784瀏覽量
98076 -
python
+關注
關注
57文章
4876瀏覽量
90057
原文標題:Python實現所有算法-正割法(Secant)
文章出處:【微信號:TT1827652464,微信公眾號:云深之無跡】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
沒有專利的opencv-python 版本
在Python中借助NVIDIA CUDA Tile簡化GPU編程
利用開源uart2axi4實現串口訪問axi總線
ADC的采樣濾波算法利用卡爾曼濾波算法
SM4算法實現分享(一)算法原理
復雜的軟件算法硬件IP核的實現
TCORDIC算法實現正余弦函數
e203除法器算法改進(二)
數據濾波算法的具體實現步驟是怎樣的?
如何利用AI算法進行裝置數據的異常檢測?
termux調試python猜數字游戲
基于FPGA實現FOC算法之PWM模塊設計
基于FPGA的壓縮算法加速實現
如何利用Python實現正割算法呢
評論