python回归之旅-用python学习数学---2023-017
2023-04-16 18:15 作者:一心想当网红的李老师 | 我要投稿
习题5:
牛顿迭代求解函数
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))
--------------------------------------------------
一个是导数的函数是自己瞎编的。diff(x)等于0的时候,程序会报错。(其实用差分代替了导数)
另外初值和迭代次数影响很大。
感觉比上一次的二分法也没进步多少,但是整了一个通用函数出来。
----------------------------------------------------
割线法也是差不多的。(差分其实就是割线了)