python回歸之旅-用python學(xué)習(xí)數(shù)學(xué)---2023-017
2023-04-16 18:15 作者:一心想當網(wǎng)紅的李老師 | 我要投稿
習(xí)題5:
牛頓迭代求解函數(shù)
import math
def f(x):
? ? y=6*math.pow(x, 3)+31*math.pow(x,2)+3*x-10
? ? return y
??
def diff(x):
? ? df=(f(x)-f(x-0.1))/0.1
? ? return df
? ??
def cal(initv,n):
? ? x=initv
? ? for i in range(n+1):
? ? ? ? x=x-f(x)/diff(x)
? ? return x
? ??
x=cal(-1,100)
print(x,f(x))
--------------------------------------------------
一個是導(dǎo)數(shù)的函數(shù)是自己瞎編的。diff(x)等于0的時候,程序會報錯。(其實用差分代替了導(dǎo)數(shù))
另外初值和迭代次數(shù)影響很大。
感覺比上一次的二分法也沒進步多少,但是整了一個通用函數(shù)出來。
----------------------------------------------------
割線法也是差不多的。(差分其實就是割線了)
標簽: