怎么用Mathematica制作动态图片
1、把一组图片变成一个动态图
代码是:
Export["abcd.gif",{图片a,图片b,图片c,图片d}]
其中,Export是输出文件的命令函数;abcd.gif是要输出的文件的名称和格式,要用""包围起来;后面的{}是一个列表。
这段代码的意思就是,把列表里的图片a、图片b、图片c、图片d按顺序导出为一个gif文件。
要注意的是,要把图片直接复制到相应的位置上,让图片成为代码的一部分。
2、 导出的文件在哪里呢?这个好像因人而异。我的电脑上的导出文件是在“文档”文件夹里。如果你的电脑不是这样,可以慢慢找,也可以全盘搜索"abcd.gif"。
3、 Mathematica可以绘制函数的图形,也可以绘制函数的动态图。
代码是:
Animate[Plot[Sin[x + a], {x, 0, 10}], {a, 0, 5}]
Animate是生成动画的命令,x是自变量,a是动画参数。
运行以后,用鼠标点开关,图像就会自己动起来;用左键拖动滑块,就实现了人机互动。自己实施去吧。
4、 上面并不是动态图,因为你的电脑文件夹里面没有这个东西(还没导出来)。
怎么导出?当然还是用Export,代码如下:
Export["sinx.gif", Table[Plot[Sin[x + a], {x, 0, 10}], {a, 0, 5}]]
出来的结果如图:
5、三焦点曲线
在《怎么用Mathematica处理多焦点曲线》里面,作者提到了多焦点曲线的概念。
下面把三焦点曲线导出为动态图。
先建立一个图的列表,一帧一帧的图像,都在这个列表里。
Table[ContourPlot[
Sqrt[(x - 1)^2 + (y - 1)^2] + Sqrt[(x - 0)^2 + (y - 0)^2] + Sqrt[
x^2 + (y - 1)^2] == a, {x, -5, 5}, {y, -5, 5}], {a, 1.8, 10, 0.1}]
然后用Export:
Export["三焦点曲线.gif",
Table[ContourPlot[
Sqrt[(x - 1)^2 + (y - 1)^2] + Sqrt[(x - 0)^2 + (y - 0)^2] + Sqrt[
x^2 + (y - 1)^2] == a, {x, -5, 5}, {y, -5, 5}], {a, 1.8, 10,
0.1}]]
6、双摆的模拟
双摆和单摆比起来,就复杂的太多了。它的运动状态,看起来非常的混乱。下面,就用Mathematica模拟一下它的运动。
它的运动,由四个函数根据不同的初始状态所确定。这四个函数设为p1[t]、p2[t]、θ1[t]、θ2[t],它们满足一个微分方程组(见图)。
代码如下图。