用Maxima画出一些有趣的图 编辑


Maxima可以画出Chaos、Duffing 、Fern、Lorenz、Rossler 、Portraits 、Mandelbrot、Staircase、Triangles等有趣的图...


Chaos


orbits(x^2+a, 0, 100, 400, [a,-1,-1.53], [x,-1.6,-0.8],
    [nticks, 400], [style,dots], WEB_IMAGE);




Duffing


a:1.0;
b:0.3;
c:0;
f:10.0;
eqs:[y,-(a*x^3+c*x+b*y)+f*cos(t)];
t_range:[t, 0, 40, 0.01];
inits:[0.0, 0.1];
sol:rk(eqs,[x,y],inits, t_range)$
plot2d([discrete, makelist([sol[i][2], sol[i][3]], i, 1, length(sol))], WEB_IMAGE);




Fern


a1: matrix([0.85,0.04],[-0.04,0.85])a2:matrix([0.2,0.26],[0.23,0.22])
a3: matrix([-0.15,0.28],[0.26,0.24])a4:matrix([0,0],[0,0.16])
p1: [0,1.6]p2:[0,1.6]
p3: [0,0.44]p4:[0,0]
w: [85,92,99,100]$
ifs(w, [a1,a2,a3,a4], [p1,p2,p3,p4], [5,0], 50000, [style,dots], WEB_IMAGE);




Lorenz  √


d:10;
r:28;
b:8/3;
eqs:[d*(y-x),r*x-y-x*z, x*y-b*z];
t_range:[t, 0, 40, 0.01];
inits:[0.0, 0.1,0.0];
sol:rk(eqs,[x,y,z],inits, t_range)$
plot2d([discrete, makelist([sol[i][2], sol[i][3]], i, 1, length(sol))], WEB_IMAGE);
plot2d([discrete, makelist([sol[i][3], sol[i][4]], i, 1, length(sol))], WEB_IMAGE);
plot2d([discrete, makelist([sol[i][2], sol[i][4]], i, 1, length(sol))], WEB_IMAGE);








Rossler  


a:0.2;
b:0.2;
c:5.7;
eqs:[-y-z, x+a*y, b+x*z-c*z];
t_range:[t, 0, 200, 0.01];
inits:[0.0, 0.01, 0.01];
sol:rk(eqs,[x,y,z],inits, t_range)$
plot2d([discrete, makelist([sol[i][2], sol[i][3]], i, 1, length(sol))], WEB_IMAGE);
plot2d([discrete, makelist([sol[i][2], sol[i][4]], i, 1, length(sol))], WEB_IMAGE);
plot2d([discrete, makelist([sol[i][3], sol[i][4]], i, 1, length(sol))], WEB_IMAGE);







Portraits


numPortraits:8;
eqs:[sin(x)+y, sin(y)-x];
t_range:[t, 0, 10, 0.01];


for k:1 thru numPortraits do (
    inits:[0.0, k*0.1],
    sol[k]:rk(eqs,[x,y],inits, t_range)
 )sollist:makelist([discrete,makelist([sol[k][i][2],sol[k][i][3]],i,1,length(sol[k]))],k,1,numPortraits)


plot2d(sol_list, WEB_IMAGE)$





simple Mandelbrot


mandel(reMin, reMax, imMin, imMax, resolution, iterations):=block(
    [reZ, imZ, absZ, i, pixels, reTemp],
    pixels:[[0,0]],
    for x:reMin step resolution thru reMax do [
        for y:imMin step resolution thru imMax do [
            reZ:0,
            imZ:0,
            absZ:0,
            for i:1 step 1 thru iterations while absZ < 4 do [
                reTemp:reZ^2 - imZ^2 + x,
                imZ:2*reZ*imZ + y,
                reZ:reTemp,
                absZ:reZ^2+imZ^2
            ],
            if absZ < 4 then pixels:append(pixels,[[x,y]])
        ]
    ],
    return(pixels)
 )$
 plot2d([discrete, mandel(-2,0.5,-1,1, 0.02, 16)],[style,
 [points,1,1,1]], WEB_IMAGE);




Staircase


load("dynamics")$
staircase(cos(y^2), 1, 11, [y, 0, 1.2], WEB_IMAGE);


Triangles


chaosgame([[0, 0], [1, 0], [0.5, sqrt(3)/2]], [0.1, 0.1], 1/2,
                 30000, [style, dots], WEB_IMAGE);





Maple中可以试着画出:


Duffing
Lorenz
Rossler
Portraits




作者:极客玩家
出处:https://geekzl.com

如果,您希望更容易地发现我的新文章,不妨点击一下绿色通道的关注我,亦可微信搜索公众号大白技术控关注我。

如果您觉得阅读本文对您有帮助,请点击一下右下方的推荐按钮,您的推荐将是我写作的最大动力!
版权声明:本文为博主原创或转载文章,欢迎转载,但转载文章之后必须在文章页面明显位置注明出处,否则保留追究法律责任的权利。如您有任何疑问或者授权方面的协商,请          .
posted @   大白技术控  阅读(360)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?

打赏

>>

欢迎打赏支持我 ^_^

扫描二维码打赏

了解更多

点击右上角即可分享
微信分享提示