如何绘制推导所得的Collatz树函数图像?求免费开源工具指导
Collatz树方程绘图方案
首先整理你推导的Collatz树方程:
C(x,0) = 3x+1 | 当 n = 0 时 C(x,n) = x*2^n | 当 n > 0 且 x > 0 时
参数说明:
- x:正奇数(取值范围1到无穷大)
- n:分支步数(取值范围0到无穷大)
免费开源绘图工具及操作步骤
1. GeoGebra(零编程,可视化操作)
这是最适合非程序员的工具,完全通过界面操作:
- 下载安装GeoGebra桌面版或直接使用网页版(免费开源)
- 操作流程:
- 点击输入栏,输入
x=1回车,再输入n=0回车;右键n选择「创建滑块」,方便调整步数 - 输入函数:
If(n==0, 3x+1, x*2^n)回车,生成x=1对应的分支 - 批量生成多分支:输入
Sequence(If(n==0,3k+1,k*2^n),k,1,10,2),直接生成x=1、3、5…9的所有分支 - 拖动坐标系或n的滑块,就能直观看到分支随步数的变化
- 点击输入栏,输入
2. Gnuplot(简单命令复制粘贴)
轻量级绘图工具,只需复制预设命令:
- 下载安装Gnuplot(跨平台免费开源)
- 打开Gnuplot控制台,粘贴以下命令并回车:
set title "Collatz Tree Branches" set xlabel "n (Steps)" set ylabel "C(x,n)" set grid # 绘制x=1、3、5、7的分支,可自行添加更多奇数 plot for [x in "1 3 5 7"] (n==0 ? 3*x+1 : x*2**n) title sprintf("x=%d",x) with linespoints - 若要添加更多奇数分支,修改
"1 3 5 7"为"1 3 5 7 9 11"即可
图像特征说明
每个奇数x对应一条独立分支:
- n=0时,分支起点为
3x+1(比如x=1对应4,x=3对应10,x=5对应16) - n>0时,分支呈指数增长曲线,x越大的分支上升速度越快
内容的提问来源于stack exchange,提问作者MkDa
相关产品推荐
相关产品推荐

