牛顿法解方程举例

本文通过具体例子详细介绍了牛顿法在求解方程中的应用步骤,阐述了迭代过程和收敛性,帮助读者理解并掌握这一数值计算方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


def cal(f,step,x0,ret):
    '''f 方程  step 精度  x0 初始值  ret 方程目标值'''
    f2=lambda x: f(x)-ret #转化方程
    f3=lambda x: x+step/(1-f2(x+step)/f2(x)) #转化方程的切线 求与 X轴交点
    x1=f3(x0)
    # y1=f2(x1)
    return x1

def test1(ret):
    def f1(x):
        return 5*x*x+x-5

    print('y=5*x*x+x-5')
    x0=0
    for i in range(10):
        x1=cal(f1,0.000001,x0,ret)
        y1=f1(x1)        
        if abs(y1-ret)<0.000001:
            print('x,y',x1,y1)
            break
        x0=x1
def test2():

    import math

    def f2(x,y):
        '''点M(x,y) 到 点 A(0,0) 的距离比到点 B(0,1)的距离的2倍少1'''
        MA=math.sqrt(x*x+y*y) #到点A的距离
        MB=math.sqrt( x*x+(y-1)*(y-1) )
        return MA-2*MB+1

    lt=[i/200 for i in range(0,1000)]

    rtlt=[]
    for j in lt:
        x0=0.1
        y0=j
        def f3(x):
            return f2(x,y0)
        for _ in range(20):
            ret=0
            x1=cal(f3,0.000001,x0,ret)
            y1=f3(x1)
            
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值