欢迎光临散文网 会员登陆 & 注册

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的时候,程序会报错。(其实用差分代替了导数)

另外初值和迭代次数影响很大。

感觉比上一次的二分法也没进步多少,但是整了一个通用函数出来。

----------------------------------------------------

割线法也是差不多的。(差分其实就是割线了)


python回归之旅-用python学习数学---2023-017的评论 (共 条)

分享到微博请遵守国家法律