当前位置: 首页 > news >正文

在Mathematica中实现Newton-Raphson迭代的收敛时间算法

对于给定的比较简单的三次多项式,可以使用FixedPoint直接给出不动点,进而在一定程度上回答Cayley问题。但是这里不能够给出收敛速度。作为类比,这里的收敛速度,类似于绘制Mandelbrot集合的逃逸时间,可以用来对图形进行染色。

收敛时间算法:对于给定的一个点,将计数以此点为初始点的迭代收敛速度,并将相应的计数划分为从0到255的三个等分区间中。

NewtonCounter = Compile[{{z, _Complex}},Module[{counter = 0, zold = N[z] + 1.0, znew = N[z]},If[Abs[znew] < 10^(-9), znew = 10^(-9) + 0.0*I, znew = znew];For[counter = 0,(Abs[zold - znew] > 10^(-6)) && (counter < 85), counter++,(zold = znew; znew = 2*zold/3 + 1/(3*zold^2))];Which[Abs[znew - 1] < 10^(-4), counter,Abs[znew + 0.5 - 0.866025 I] < 10^(-4), 85 + counter,Abs[znew + 0.5 + 0.866025 I] < 10^(-4), 170 + counter,True, 255]]];

使用函数NewtonCounter,对于平面中的某个区域,可以构造一个数表:

NewtonArray1[{{remin_, remax_}, {immin_, immax_}}, steps_] :=Table[NewtonCounter[x + y I],{y, immin, immax, (immax - immin)/steps},{x, remin, remax, (remax - remin)/steps}]

这样,就可使用ListDenstiyPlot函数进行绘图了:

region1 = NewtonArray1[{{-2, 2}, {-2, 2}}, 1000]; ListDensityPlot[region1]

http://www.xdnf.cn/news/868519.html

相关文章:

  • 【LLM大模型技术专题】「入门到精通系列教程」LangChain4j与Spring Boot集成开发实战指南
  • 学习笔记085——Spring Data JPA笔记
  • DeepSeek-R1-0528:学术写作的新纪元
  • CppCon 2015 学习:A C++14 Approach to Dates and Times
  • Vue 3 弹出式计算器组件(源码 + 教程)
  • SOC-ESP32S3部分:30-I2S音频-麦克风扬声器驱动
  • Go语言学习-->go的跨平台编译
  • 基于C++实现(WinForm) LAN 的即时通信软件
  • 【笔记】PyCharm 使用问题反馈与官方进展速览
  • 开源模型应用落地-OpenAI Agents SDK-集成Qwen3-8B-function_tool(二)
  • IDEA中微服务指定端口启动
  • java31
  • Spring Boot 从Socket 到Netty网络编程(下):Netty基本开发与改进【心跳、粘包与拆包、闲置连接】
  • React组件基础
  • Python 2.7 退役始末:代码架构缺陷与社区演进路线图
  • Linux-linux和windows创建新进程的区别以及posix_spawn
  • 爬虫学习记录day1
  • Git Github Gitee GitLab
  • [特殊字符] 深度剖析 n8n 与 Dify:使用场景、优劣势及技术选型建议
  • 常用的Docker命令
  • 得物GO面试题及参考答案
  • Quick UI 组件加载到 Axure
  • [杰理]蓝牙状态机设计与实现详解
  • Android 3D球形水平圆形旋转,旋转动态更换图片
  • (2025)Windows修改JupyterNotebook的字体,使用JetBrains Mono
  • 【计算机网络】第3章:传输层—TCP 拥塞控制
  • MaskSearch:提升智能体搜索能力的新框架
  • Qwen3与MCP协议:重塑大气科学的智能研究范式
  • 文献分析指令
  • SSM spring Bean基础配置