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

在Mathematica中使用Newton-Raphson迭代绘制一个花脸

编写带有参数的Newton-Raphson迭代:

NewNewtonCounter = Compile[{{z, _Complex}, {r, _Real}, {otherroot, _Complex}},Module[{counter = 0, zold = N[z] + 1, 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 = (r + 2*zold^3)/(-1 + r + 3*zold^2))];Which[Abs[znew - 1] < 10^(-4), counter,Abs[znew - otherroot] < 10^(-4), 85 + counter,Abs[znew - Conjugate[otherroot]] < 10^(-4), 170 + counter,True, 255]]];(*返回含参数数表:其每个值代表NR迭代次数*)  
NewNewtonArray[r_, {{remin_, remax_}, {immin_, immax_}}, steps_] :=Module[{croot = -N[(1 + Sqrt[1 - 4 r])/2]},Table[NewNewtonCounter[x + y I, r, croot],{y, immin, immax, (immax - immin)/steps},{x, remin, remax, (remax - remin)/steps}]](*编写颜色函数*)                
SillyFaceColor[x_] :=If[EvenQ[Floor[255*x]], RGBColor[0, 0, 0],RGBColor[1, 1, 1]]SillyFaceColorB[x_] :=Which[x < 0.333, If[EvenQ[Floor[255*x]], RGBColor[0, 0, 0],RGBColor[tr[5 (3 x)], 0, 0]],0.334 < x < 0.666, If[EvenQ[Floor[255*x]], RGBColor[0, 0, 0],RGBColor[0, 0, tr[5 (3 x - 1)]]],0.667 < x < 1, If[OddQ[Floor[255*x]], RGBColor[0, 0, 0],RGBColor[0, 0, tr[5 (3 x - 2)]]],True, RGBColor[0, 0, 0]](*绘制函数*)
FaceNewtonPlot[{{remin_, remax_}, {immin_, immax_}}, data_, colorfn_] :=ListDensityPlot[Reverse[Transpose[data]],Mesh -> False, Frame -> False,PlotRange -> {1, 255}, AspectRatio -> Automatic,ColorFunction -> colorfn]
region = NewNewtonArray[0.5, {{-2.4, -1.85}, {-0.24, 0.24}}, 2000]; 
FaceNewtonPlot[{{-2.4, -1.85}, {-0.24, 0.24}}, region, SillyFaceColor]

FaceNewtonPlot[{{-2.4, -1.85}, {-0.24, 0.24}}, region, SillyFaceColorB]

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

相关文章:

  • oracle 归档日志与RECOVERY_FILE_DEST 视图
  • C++与Python编程体验的多维对比:从语法哲学到工程实践
  • skynet sproto 协议插件
  • 《Python批量删除阿里云OSS文件:多线程删除与关键词过滤全解析》
  • Redis:Hash数据类型
  • 使用MounRiver Studio Ⅱ软件写一个CH592F芯片的ADC采集程序,碰到的问题
  • Qt Test功能及架构
  • LangChain4j 学习教程项目
  • Go 语言 sync.WaitGroup 深度解析
  • 2025年交安B证备考题库及答案
  • Redis 高频知识点及解析
  • 在 Win10 上 WSL 安装 Debian 12 后,Linux 如何启动 SMTP 服务?
  • GIC700概述
  • Redis主从复制的原理一 之 概述
  • 提升打字效率,全功能解析打字通
  • 【面试篇 9】c++生成可执行文件的四个步骤、悬挂指针、define和const区别、c++定义和声明、将引用作为返回值的好处、类的四个缺省函数
  • 双面沉金线路板制作流程解析:高可靠性PCB的核心工艺
  • 计算机基础知识(第五篇)
  • C#提取CAN ASC文件时间戳:实现与性能优化
  • Dynadot专业版邮箱工具指南(五):将域名邮箱添加至Outlook客户端
  • MySQL(62)如何进行数据库分片?
  • 数据库防丢失技术指南
  • 26N60-ASEMI工业电机控制专用26N60
  • 使用 SAM + YOLO + ResNet 检测工业开关状态:从零到部署
  • 纳米AI搜索与百度AI搜、豆包的核心差异解析
  • 湖北理元理律师事务所:债务咨询中的心理支持技术应用
  • Linux【4】------RK3568启动和引导顺序
  • model.classifier 通常指模型的分类头 是什么,详细举例说明在什么部位,发挥什么作用
  • 5月微短剧备案情况:当代都市剧成为主流
  • python asyncio的作用