一、不动点迭代法求方程的解

import sympy
#迭代的方程为  f(x)=pow(x,3)-x-1
def psi(x):return pow(x+1,1/3)def dif(x0):  #求导函数用于判断最后的是否局部收敛x = sympy.Symbol('x')Y = pow(x+1,1/3)difY=(sympy.diff(Y, x))a=difY.subs(x,x0)return adef Fix(x0):p0=psi(x0)x1=p0k=0while k>=0:if abs(x1-x0)<10e-9:print("方程的根为",x1)print("迭代次数为",k)if abs(dif(x0))<1:print("此迭代局部收敛")else:print("此迭代非局部收敛")breakelse:x0=x1p0=psi(x0)x1=p0print("第",k+1,"次迭代值为",x0)k=k+1return x0    Fix(1.5)

运行结果

第 1 次迭代值为 1.3572088082974532
第 2 次迭代值为 1.3308609588014277
第 3 次迭代值为 1.325883774232348
第 4 次迭代值为 1.324939363401885
第 5 次迭代值为 1.3247600112927027
第 6 次迭代值为 1.3247259452268871
第 7 次迭代值为 1.324719474534364
第 8 次迭代值为 1.3247182454489357
第 9 次迭代值为 1.324718011988197
第 10 次迭代值为 1.3247179676430874
方程的根为 1.3247179592198772
迭代次数为 10
此迭代局部收敛

二、斯特芬森(Stephens)迭代法

# 斯蒂芬斯加速迭代,同样的例题,不动点迭代法用这个迭代方程还无法迭代,需要另一个迭代方程
#但这种方法即使是使用不动迭代的那个方程依旧可以迭代,而且这个方法迭代两次,用不动点迭代要十次迭代
import sympy
#迭代的方程为  f(x)=pow(x,3)-x-1   与不动点迭代是同个例子,但迭代方程不同
def psi(x):return pow(x,3)-1 #这个迭代方程用不动点迭代方法无法迭代,发散def dif(x0):  #求导函数用于判断最后的是否局部收敛x = sympy.Symbol('x')Y = pow(x+1,1/3)difY=(sympy.diff(Y, x))a=difY.subs(x,x0)return adef Fix(x0):  #x0是选取的初值p0=psi(x0)y0=p0z0=psi(y0)k=0while k>=0:if abs(y0-x0)<10e-9:print("方程的根为",x0)print("迭代次数为",k)if abs(dif(x0))<1:print("此迭代局部收敛")else:print("此迭代非局部收敛")breakelse:x0=x0-((y0-x0)**2)/(z0-2*y0+x0)y0=psi(x0)z0=psi(y0)print("第",k+1,"次迭代值为",x0)k=k+1return x0    Fix(1.5)

运行结果

第 1 次迭代值为 1.4162929745889388
第 2 次迭代值为 1.355650441476644
第 3 次迭代值为 1.3289487772840107
第 4 次迭代值为 1.3248044890410438
第 5 次迭代值为 1.3247179939688145
第 6 次迭代值为 1.3247179572447527
方程的根为 1.3247179572447527
迭代次数为 6
此迭代局部收敛

数值分析——求方程解的不动点迭代法和斯特芬森法(Python实现)相关推荐

  1. 5.C语言二分法求方程解

    用二分法求方程解 #include <stdio.h> #include <math.h> double f(double x){return x*x-2*x-1; } dou ...

  2. matlab用牛顿迭代法求解方程,牛顿迭代法求方程解 程序如下

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 function [x_reality,n_reality] = Newt( f_name,x_start,tolerance,n_limit) %% % ...

  3. c语言韦达定理求方程解,解一元二次方程练习题(韦达定理)

    <解一元二次方程练习题(韦达定理)>由会员分享,可在线阅读,更多相关<解一元二次方程练习题(韦达定理)(13页珍藏版)>请在人人文库网上搜索. 1.解一元二次方程练习题(配方法 ...

  4. c语言韦达定理求方程解,巧用韦达定理简化解题过程

    高中的平面解析几何,是用代数方法来研究平面几何图形的问题,它所提出的问题以及问题的结论都是几何形式,而中间的论证和推导基本上是用代数方法.有许多题型中都会涉及二次函数韦达定理的综合应用. 韦达定理反映 ...

  5. 用牛顿迭代法求方程的根matlab,牛顿迭代法求方程解 程序如下

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 function [x_reality,n_reality] = Newt( f_name,x_start,tolerance,n_limit) %% % ...

  6. matlab牛顿迭代法 方程的根,牛顿迭代法求方程解 程序如下

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 function [x_reality,n_reality] = Newt( f_name,x_start,tolerance,n_limit) %% % ...

  7. 用matlab求方程解的三种方法

    方法一:二分法 function [x] =bisection(f,a,b,e)      if f(a)*f(b)>=0         x='there is no root in (a,b ...

  8. 不动点迭代法和牛顿迭代法

    不定点迭代法 方程的根 不动迭代法的概念 代码实现 import numpy import numpy as np from sympy import * import math import mat ...

  9. 求平方根的算法 牛顿迭代法和二分法

    牛顿法: public double sqr(double n){double x=n,y=0.0;while (Math.abs(x-y)>0.0001){y=x;x=(x+n/x)/2;}r ...

最新文章

  1. valgrind概述及错误分析
  2. c++矩阵转置_C语言:数据结构-稀疏矩阵的压缩存储
  3. 从其它地方复制的代码到VS 提示无法识别的标记的解决办法
  4. java应该怎么学习?
  5. python中参数传递_python中参数传递
  6. 2011 - 12 - 12记录2011 - 12 - 11
  7. python在线怎么发音-Python如何实现文本转语音
  8. shell脚本基础 循环机构
  9. 多元函数偏导数连续、存在与可微的关系
  10. 通过rundll32调用系统对话框
  11. 机械制造作业考研题目答案分享——回转体的加工
  12. Idea突然不停indexing的问题
  13. Python批量自动下载获取图片
  14. (超详细)MapReduce工作原理及基础编程
  15. 【MTK Front Camera Bringup】
  16. Redis客户端常用命令大全
  17. LIS2MDL磁力计驱动
  18. java启动器_Minecraft Java版新启动器正式开放
  19. 【名片制作】深灰色背景·简单名片设计
  20. 数据库周刊28│开发者最喜爱的数据库是什么?阿里云脱口秀聊程序员转型;MySQL update误操作;PG流复制踩坑;PG异机归档;MySQL架构选型;Oracle技能表……

热门文章

  1. PHP 超级模板引擎
  2. 图像和视频质量评估算法 资源帖
  3. 超外差接收机原理图讲解(五)-- 控制 部分
  4. python3 flask 路由
  5. 集成开发环境Pycharm的安装及模板设置
  6. C++ 中的 string::npos 示例
  7. 第八届蓝桥杯单片机省赛----程序题
  8. 插曲(2):光敏电阻的连接
  9. win10 局域网其他电脑/手机无法访问我的web项目
  10. 美的集团上半年营收1827亿:净利160亿 狠心批量裁员