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

在 Python 和 Mathematica 中可视化复值函数

原文:towardsdatascience.com/today-i-was-pouring-through-my-complex-variables-and-analytic-functions-book-written-by-the-e9205f71485d?source=collection_archive---------8-----------------------#2024-02-19

解锁数学难题的视觉洞察

https://medium.com/@Dani_Lisle?source=post_page---byline--e9205f71485d--------------------------------https://towardsdatascience.com/?source=post_page---byline--e9205f71485d-------------------------------- Dani Lisle

·发表于 Towards Data Science ·3 分钟阅读·2024 年 2 月 19 日

今天我正在翻阅由受尊敬的 Fornberg 和 Piret 编写的*《复变函数与解析函数》*,尽力理解复值函数的行为。由于这些函数既有实数输入,也有虚数输入,并且输出两个分量,因此,单一的 3D 图形不足以展示函数的行为。我们需要将这种可视化拆分为实部和虚部的单独图表,或者按幅度和相位(角度)来展示。

我希望能够随意操作任何想到的函数,拖动和缩放其图表,并在可视化细节中探索它,以理解它如何从方程中得出。对于这样的任务,Wolfram Mathematica 是一个很好的起始工具。

Wolfram 语言

plotComplexFunction[f_]:=Module[{z,rePlot,imPlot,magPlot,phasePlot},z=x+I y;rePlot=Plot3D[Re[f[z]],{x,-2,2},{y,-2,2},AxesLabel->{"Re(z)","Im(z)","Re(f(z))"},Mesh->None];imPlot=Plot3D[Im[f[z]],{x,-2,2},{y,-2,2},AxesLabel->{"Re(z)","Im(z)","Im(f(z))"},Mesh->None];magPlot=Plot3D[Abs[f[z]],{x,-2,2},{y,-2,2},AxesLabel->{"Re(z)","Im(z)","Abs(f(z))"},Mesh->None,ColorFunction->Function[{x,y,z},ColorData["Rainbow"][Rescale[Arg[x+I y],{-Pi,Pi}]]],ColorFunctionScaling->False];phasePlot=DensityPlot[Arg[f[z]],{x,-2,2},{y,-2,2},ColorFunction->"Rainbow",PlotLegends->Automatic,AxesLabel->{"Re(z)","Im(z)"},PlotLabel->"Phase"];GraphicsGrid[{{rePlot,imPlot},{magPlot,phasePlot}},ImageSize->800]];f[z_]:=(1/2)*(z+1/z);plotComplexFunction[f]https://github.com/dreamchef/complex-functions-visualization

github.com/dreamchef/complex-functions-visualization

我编写了上述 Mathematica 代码,用于生成一个图表网格,展示如上所述的两种方式的函数。在顶部显示了函数的虚部和实部,

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/9b6073b85b9639da070285491a0935ae.png

底部显示了幅度和相位,以颜色表示:

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/0234fbdcc4486ce649d41dee4561a6a0.png

来自 Wolfram 的分量和幅度-相位图 f(z)

在用这段代码玩了几个函数并确信它们有意义之后,我对如何在 Python 中实现相同功能产生了兴趣,以便将其与其他数学编程项目连接起来。

Python、PyPlot 和 complex-plotting-tools

我在 GitHub 上找到了一个很棒的项目(github.com/artmenlope/complex-plotting-tools),我决定将其作为起点,并有可能在未来做出贡献。这个仓库提供了一个非常简单的界面,用于以多种方式绘制复值函数。感谢github.com/artmenlope!例如,在导入numpymatplotlib和该仓库的cplotting_tools模块后,定义函数并调用cplt.complex_plot3D(x,y,f,log_mode=False),将生成以下内容:

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/da80e1f86e6827c86fbbf1432799ac18.png

来自 complex-plotting-tools 的 f(z)幅度和相位图

这些图都是用于上面相同的 f(z)。要查看该函数的虚部和实部并排显示,可以使用cplot.plot_re_im(x,y,f,camp="twilight",contour=False,alpha=0.9)

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/4d9943d906a41a280988bde245410cb8.png

来自 complex-plotting-tools 的分量绘图

此外,该库还提供了其他酷炫的方式来研究函数,包括流线图:

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/c026babc96d69ed06a58d6453cc920af.png

来自 complex-plotting-tools 的 f(z)流线图

未来方向

这个库展示了很大的潜力,且相对容易使用!它确实需要定义一个pts变量,用于编码给定函数的极点和零点。Wolfram 不需要这个,因为它在幕后计算这些点的位置。如果 complex-plotting-tools 也具备这个功能,将为用户节省大量的精力。我计划在不久的将来将其实现到该模块中。

与此同时,尽情享受使用 Wolfram 和 Python 绘图的乐趣,欢迎在下方评论中分享您的想法和问题,或通过LinkedIn与我联系,或在GitHub与我合作!

除非另有说明,所有图片均由作者创建。

http://www.gsyq.cn/news/1426762.html

相关文章:

  • ContextMenuManager完整指南:高效管理Windows右键菜单的实用技巧
  • 别再死记硬背了!用‘连连看’游戏思维理解CFC编程:功能块、连线与控制点实操
  • 2026年新疆HDPE管道厂家与市政基建工程管材供应商系统对比教程 - 企业名录优选推荐
  • 3个实用技巧:用哔哩下载姬打造个性化视频观看体验
  • 国内污水处理数字孪生优质服务企业权威排行盘点 - 奔跑123
  • 告别手写循环!Go 1.21 slices包实战:用Max/Min/Sort轻松处理业务数据
  • Epson机器人T3系列与欧姆龙PLC通讯方案选型避坑:标准IO、Modbus还是Fins TCP?
  • 从零封装一个AS608的HAL库驱动:CubeMX配置、串口中断处理与模块化代码移植指南
  • 手把手教你搞定四川广电九洲PTV-8698机顶盒刷机(HI3798M310高安版+当贝桌面)
  • 抖音本地保存不带水印的方法全解析含官方渠道合规方式与工具风险说明 - 科技热点发布
  • 从0到1掌握distilbert-NER:新手必备的实体识别入门教程
  • 金价992元/克!荆州卖黄金别被坑,余生黄金回收(全国连锁)实测排名第一,附6家门店完整避坑指南 你有没有算过,家里那些闲置黄金现在值多少钱? - 润富黄金珠宝行
  • FreeRTOS实战:用队列和队列集搞定多任务间的“聊天”与“排队”(附代码避坑)
  • 为 HTML 静态网页托管部署增加:“电子围栏”
  • 992元/克!2026年5月江门卖黄金全攻略:六家回收店实评+避坑指南 - 润富黄金珠宝行
  • RAFT-stereo模型转换全攻略:ONNX到axmodel的最佳实践
  • 动态KV缓存优化:突破LLM推理内存墙
  • AI产品信任构建:从机器学习不确定性到用户体验设计
  • 从功能到价值:初创公司如何通过“卖结果”构建竞争壁垒
  • 2026年珠海黄金回收行业大起底:6家门店横评,设备、报价、流程全拆解,第一名没悬念 - 润富黄金珠宝行
  • 义乌家家旺空调维修:义乌空调移机公司怎么联系 - LYL仔仔
  • 如何高效使用DownKyi:B站视频下载的终极解决方案
  • Linux开发者的救星:用Remmina搞定公司Windows堡垒机远程连接(附文件互传保姆级教程)
  • 2026年大模型API路由网关技术观察:市面五个主流平台的客观横评
  • ControlNet SDXL未来展望:MindSpore-Lab项目的技术路线图与发展方向
  • 新型代运营机构排名|2026拼多多代运营公司推荐榜:AI智能运营赋能 - 品牌榜中榜
  • 一套键鼠控制多台电脑?Input Leap帮你实现跨平台KVM软件的完美体验
  • 韶关跨境电商GEO服务商推荐 - 舒雯文化
  • 官渡区秋辰叉车租赁:西山正规的吊车租赁公司推荐几家 - LYL仔仔
  • AI赋能UI/UX设计:Figma插件实战与未来工作流构建