栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python用牛顿迭代法求解的一个案例

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python用牛顿迭代法求解的一个案例

        现假设某地区有100万初始人口。第一年内有43.5万移民迁入,第一年末总计人口达156.4万。根据上述数据推算该地区的增长率常数X(精确度为10^-4)。即求解方程:

        我们首先建立函数:

        其次,我们要知道精确度的定义:

        上式中x0和x2为我们要确定的初始值;

        接下来直接上代码的部分,里面也有一定的注释。


import math as ma
import time
import numpy as np
from sympy import *
def f(x):
    y=100*ma.e**x+43.5/x*(ma.e**x-1)-156.4
    return y
start=time.time()#记录开始时间
x=symbols('x')#定义变量
x0=1;x2=0#确定初始值
while True:
    if np.abs((x0-x2)/x0)<=10**(-4):#精确度条件
        end=time.time()#记录结束时间
        print('牛顿迭代法的求值:{}n运行的时间:{}'.format(x0,end-start))#输出
        break#跳出循环
    else:
        x1=x0-f(x0)/(diff(f(x),x,1).subs(x,x0))#用sympy库对f(x)求导
        x2=x0;x0=x1#进行变量替换,进行下一步的迭代
        continue

        本文主要是对牛顿迭代法的实际运用,没有考虑其存在的条件,即:

 

         同时,初始值的确定是根据经验,或者说是大概的估算得来,具体怎么更好的确定初始值,可以查阅相关资料。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/757716.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号