如东做网站,cad图做网站链接,建商城网站多少钱,西安网站建设公司有哪些目录 目录前言#xff08;一#xff09;牛顿迭代法的分析1.定义2.条件3.思想4.误差#xff08;二#xff09;代码实现1.算法流程图2.源代码#xff08;三#xff09;案例演示1.求解#xff1a;\(f(x)x^3-x-10\)2.求解#xff1a;\(f(x)x^2-1150\)3.求解#xff1a;\(f… 目录 目录前言一牛顿迭代法的分析1.定义2.条件3.思想4.误差二代码实现1.算法流程图2.源代码三案例演示1.求解\(f(x)x^3-x-10\)2.求解\(f(x)x^2-1150\)3.求解\(f(x)x^3-x^2-x1\)4.求解\(f(x)x^4-4x^240\) 目录 前言 今天我们讲的是具有收敛速度快能求重根的解方程之法牛顿迭代法。 一牛顿迭代法的分析 1.定义 迭代公式如下\[ x_{k1} x_k-\frac{f(x_k)}{f\prime(x_k)} (k0,1,2...) \] 迭代函数是\[ \varphi(x) x_k-\frac{f(x_k)}{f\prime(x_k)} \] 由于$ \varphi(x) x_k-\frac{f(x_k)}{f\prime(x_k)}$ 与原方程\(f(x)0\) 等价。 当\(k\rightarrow \infty\) 时\(x_k\)就是\(f(x)0\)的近似解。 该方法称为牛顿迭代方法。 2.条件 f(x)函数是连续可导函数。f(x)在局部收敛当\(f(x) \times f\prime\prime(x)0\)时局部收敛。 注意牛顿迭代法的局部收敛性很依赖于初始值的取法。 也就是说初始值的选取决定该区域的收敛性。 3.思想 其总思想还是迭代的方法只是其迭代公式是由泰勒展开得来的其利用的是用切线方程与x轴的交点来近似f(x)与x轴的交点。 4.误差 任然用的是迭代法的误差前后两次x的差的绝对值与我们给的精度比较。 二代码实现 1.算法流程图 2.源代码 feval()函数 def feval(string, a):根据值来计算数学表达式。:param string: 含有x未知数的数学表达式:param a: 自变量x的具体数值:return: 数学表达式的计算结果count string.count(x)string string.replace(x, %f)t (a, ) * countresult eval(string % t)return result float_num()函数 def flaot_num(x, r):处理保留几位小数点的函数,四舍五入法:param x: 原始数据:param r: 误差:return: 处理后的数据# 处理小数点的位数r str(r)if . in r:dian r.index(.)size len(r[dian 1:])result round(x, size)return resultelif e in r:dian r.index(e)size int(r[dian2:])result round(x, size)return resultelse:result round(x, 0)return result 牛顿迭代法 牛顿迭代法迭代的思想不断逼近。# 求导数需要的库
import sympy as sp
from my_math.func_math import feval, flaot_numdef new_fun(expr, x0, r):牛顿迭代法求解方程的根:param expr: 代函数表达式:param x0: 初始值:param r: 误差:return: 计算的结果值x sp.Symbol(x)k 0# 一阶导与二阶导fx_1 str(sp.diff(expr))fx_2 str(sp.diff(fx_1))# 迭代公式y x- (expr )/( fx_1 )# 判断收敛性if feval(expr, x0)*feval(fx_2, x0) 0:print(函数处于该点区域不收敛)result Noneelse:x1 feval(y, x0)x2 feval(y, x1)while abs(x2-x1) r:x1 feval(y, x2)x2 feval(y, x1)k 1print(次数, k)print(x1:, x1)print(x2:, x2)result flaot_num(x2, r)print( * 30)print(原始的数据是, x2)print(最后的结果是, result)return resultif __name__ __main__:new_fun(x**4-4*x**24, 2, 10**-5) 三案例演示 1.求解\(f(x)x^3-x-10\) 误差10^-5 图像分析来确定初值 取在1.5为初始值 运行结果 2.求解\(f(x)x^2-1150\) 误差10^-5 图像分析来确定初值 取11为初始值。 运行结果 3.求解\(f(x)x^3-x^2-x1\) 误差10^-5 图像分析来确定初值 取初始值为1.6 运行结果 4.求解\(f(x)x^4-4x^240\) 图像分析来确定初值 取初值是0 运行结果 我们换另一个点试试取初始值为2 运行结果 作者Mark 日期2019/02/19 周二转载于:https://www.cnblogs.com/zyg123/p/10400543.html