Mathematica保姆级教程
在观看此篇前可先观看:Mathematica最简教程
特殊符号
添加注释:1+2 (*输入注释*)
,注释内容的快捷键为Alt+/
。
%
表示上一次的计算结果。
回车Enter
表示换行,Shift键与回车Shift+Enter
同时按下表示执行程序。
一个表达式以分号;
结尾则不输出计算结果,一行可以写多个表达式,但是需要用分号分隔。
()
圆括号表示项的结合顺序,如(x+(y^x+1/(2x)))
;[]
方括号表示函数,如Log[x]
,Sin[x,1]
;{}
大括号表示一个“表”(一组数字、任意表达式、函数等的集合),如{2x,Sin[12 Pi],{1+A,y*x}}
;[[]]
双方括号表示“表”或“表达式”的下标,如a[[2,3]]、{1,2,3}[[1]]=1
。
MMA中第一个元素下标为1
公式输入快捷键:分数线 Ctrl+/
,二次根式Ctrl+2
,
n
n
n次根式Ctrl+2, Ctrl+5
,上标Ctrl+6
,下标Ctrl+_
,同时输入上下标Ctrl+_,Ctrl+5
内置函数与自定义函数
Mathematica有已经定义好的内置变量与函数,其以大写字母开头,如常见的Pi
表示
π
\pi
π ,Sin[]
正弦函数,Plot[]
用于函数绘制等。
内置函数如Log[]
求指数函数,Round[]
四舍五入,Max[]
取最大值,Exp[]
指数函数,Sin[]
正弦。自定义函数写作f[x_]=Fun[x]
,如f[x_]=x^2
,这里的自变量用x_
表示,如果是多变量的函数就用f[x_,y_,z_]
来表示。
分段函数
分段函数定义需要使用内建函数If[]
,如x大于等于0时函数值等于x,函数值小于x时等于x^2,可写做f[x_]=If[x>=0,x=x,x=x ^2]
。也可以用If实现多段函数的定义。
多段函数(三及以上)的绘制
f[x_] := If[x < 0, x - 1, If[x < 2, x^2, Sin[3 x]]]
Plot[u[x], {x, -2, 10}]
输出精度
Mathematica默认以绝对精确的形式输出计算结果。例如:输入 3/2
,系统会输出
3
2
\frac{3}{2}
23,如果想得到近似解,则应输入 N[3/2,5]
,即求其5位有效数字的数值解,系统会输出0.66667
。此外,Mathematica还可以根据你前面使用的数字的精度自动地设定精度。
可以用两个内置函数将数字转化为有理数或者实数,N[x,n]
可以将x转化为实数,精度位数为n其中n可以省略,Rationalize[x,dx]
将x转化为有理数,误差小于dx。
绘图
图形函数中最有代表性的函数为Plot[表达式,{变量,下限,上限},可选项],(其中表达式还可以是一个"表达式表",这样可以在一个图里画多个函数);变量为自变量;上限和下限确定了作图的范围;
单个图形:Plot[Fun[x],{x,xmin,xmax},options]
,即在区间{x,xmin,xmax}上,按选项的要求画出函数f的图形。
多个图形:Plot[{Fun1[x],Fun2[x]},{x,xmin,xmax},options]
,在区间{x,xmin,xmax}上,按选项的要求画出几个函数的图形。
可选项可要可不要,不写系统会按默认值作图,它表示对作图的具体要求。例如Plot[Sin[x],{x,0,2*Pi},AspectRatio-1]
表示在0<x<2Pi的范围内作函数Sin[x]的图象,AspectRatio
为可选项,表示图的x向y向比例,AspectRatio-1
表示纵横比例为1:1,如果不写这一项,系统默认比例为1:GodenRatio,即黄金分割的比例 (注意,可选项的写法为可选项名-可选项值
) ,Plot还有很多可选项,如PlotRange
表示作图的值域
,PlotPoint
表画图中取样点的个数
,越大则图越精细,PlotStyle
来确定所画图形的线宽、线型、颜色
等特性,AxesLabel
表式在坐标轴上作标记
等等。
关于三维图的绘制
三维曲线:ParametricPlot[{x[t],y[t]},{t,t0,t1},options]
画一个X轴, Y轴坐标为{x[t],y[t]},参变量t在[t0,t1]中的参数曲线。
三维图形:Plot3D[f[x,y],{x,x0,x1},{y,y0,y1},选项]
,画出空间曲面f[x,y]。
ListLinePlot[Table[RandomInteger[{1, 10}], {10}]]`,先产生十个一到十之间的随机整数,放到表中。然后画出拆线图。
Plot3D[Sin[x + y], {x, -3, 3}, {y, -2, 2}]
,当变量有两个时,输出函数的立体图。
动画 ListAnimate[Table[Plot[Sin[n x],{x,0,10}],{n,5}]]
解方程与微积分
求解方程组,使用函数Solve[]
:Solve[a*x^2 + b*x + c == 0, x]
或写为Solve[a x^2 + b x + c == 0, x]
MMA中空格可以代替乘号,若a与x中间没有空格或
*
,那么MMA会将ax视作变量,错误示范:Solve[ax^2 + bx + c == 0, x]
解方程 { x + 3 y = 2 − 2 x + 6 y = 0 \left\{\begin{array}{l}x+3 y=2 \\ -2 x+6 y=0\end{array}\right. {x+3y=2−2x+6y=0
Solve[{x+3*y==2&&-2*x+6*y==0},{x,y}]
,方程用&&连接
不定积分:Integrate[1/(1 - x^2), x]
求导函数,用D: D[%, x]
,%表示上一个输出结果。D[%, {x, 5}]
为求
n
n
n阶导。
化简:Simplify[%]
计算定积分:Integrate[Sin[x], {x, 0, Pi}]
计算二重积分:Integrate[Sqrt[x^2 + y^2], {x, 0, 1}, {y, 0, x}]
解微分方程:DSolve[y''[x] == a y[x], y[x], x]
解常微分方程组:NDSolve[{x'[t] == -y[t] - x[t]^2, y'[t] == 2 x[t] - y[t]^3, x[0] == y[0] == 1}, {x, y}, {t, 20}]
NSolve是先求出解析解(精确的表达式),然后计算它的数值
求反函数:Clear[f]; f[x_] := 3x/(3x+2); InverseFunction[f][x]
如果我们需要求解
x
=
sin
x
e
x
x=\sin{x}e^x
x=sinxex 这类没有解析解的函数,Solve和NSolve都会失效,这时我们就要用到FindRoot[]
,FindRoot直接求数值解FindRoot[x == Sin[x]*Exp[x], {x, 1}]
解数列通项用RSolve,比如解
a
n
+
1
−
2
a
n
=
1
a_{n+1}-2a_n=1
an+1−2an=1:RSolve[a[n + 1] - 2 a[n] == 1, a[n], n]
,如果还有初始条件,那么RSolve[{a[n + 1] - 2 a[n] == 1, a[0] == 1}, a[n], n]
求极限:Limit[(2^(1/x) - 1)/(2^(1/x) + 1), x -> 0]
大杂烩
MMA的三个基本构造块,即三个atom是:符号 symbol,数字 number,串 string
至于常用数据,在MMA中,是经常用表 (list) 来表示的,用{}括起来。{1, 2, 3}
Sin[x]^2
表示
sin
2
x
\sin^2{x}
sin2x
Sin[x^2]
表示
sin
(
x
2
)
\sin(x^2)
sin(x2)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具