MATLAB–Mupad 初学者
第一次写文章,也是当作考试复习用的,参考书是华南理工大学出版社《数学基础实验教程》。关于matlab,解决数学问题是蛮有用的。
一、开始使用Mupad
首先,要想学会使用mupad来解决数学问题,当然是先安装MATLAB啦。
版本最好高于R2008b。
安装好matlab之后,打开来是这样的。
mupad是matlab的符号数学工具箱的组成部分,所以只能通过matlab来打开mupad。而mupad提供notebook界面,使得用户可以在这个界面做各种数学运算。
一、打开notebook界面的方法:
在matlab的命令窗口输入mupadwelcome,再按Enter键,系统就会打开一个界面,如图,点击红色框内的New Notebook
Notebook的界面就会出来。
二、notebook界面的三种区域
(一)、输入区域
输入区域在打开来的时候就有,就是,但是之后如果还想再加,可以点击上方红色框内的图标。
这个区域是用来输入命令的,也就是说,你要解决的数学问题,用一定的语法(语法在后面会讲到)在这个区域表达出来,计算的任务就交给软件来做了。
使用时,将光标置于输入区域的某个位置,按Enter键,就可以让mupad执行这片区域的命令,如果想要换行,按Ctrl+Enter或shift+Enter即可。 (图中的红色字体部分)
每个语句的结尾都要以分号或冒号来结束。
分号结束的语句:计算结果显示在输出区域
冒号结束的语句:计算结果不显示在输出区域
(二)、输出区域
执行完命令后会出现的区域 ,紧接着输出区域。(图中的蓝色字体部分)
输出区域有不同的格式
下面,用一个一元三次方程说明这几种显示格式的区别
delete x:
solve(x^3 + x^2 + 1 = 0, x, MaxDegree = 3);
1.用Typeset Math和Abbreviate Output两种格式运行此代码
2.只选Typeset Math格式运行此代码:是很好看的印刷体格式,但复制是以图片格式来复制的。
3.只选Abbreviate Output格式运行:和键盘输入的数学表达式相同。
4.只选Pretty print格式:matlab符号数学工具箱原有的一种数学公式显示格式。
5.Text Width是设置输出区域每一行最大字符数。
(三)、文本区域
添加注记的区域,类似于注释,增加可读性。(图中的黑色字体部分)
如图
三、基础语法
输入语句的语句一定都要是英文格式的!
(一)、标识符
标识符的命名规则和C语言的语法一样,都是只能包含数字、字母、下划线。并且
1.第一个字符不能是数字;
2.区分大小写;
3.不能是关键字;
不合法的比如:3a、x>y、sin(系统设定的正弦函数)
合法:a3、Sin(区分大小写)
(二)、赋值
赋值符号由一个冒号和一个等于号构成 :=
语法格式为
<标识符>:=value
value可以是数、表达式、方程、列表、集合、矩阵等。
y:=a+x;
此时y被赋值a+x
a:=10;
此时y为x+10
delete a;
使用delete命令,将a原先被赋的值清除,y又变为a+x
(三)、标准库的特殊记号
符号常数:
E 自然对数e
exp(n) e的n次幂
I 虚数单位i
PI 圆周率
infinity 正无穷大
-infinity 负无穷大
undefined 无定义
浮点数学常量
RD_INF 浮点数形式的正无穷大
RD_NINF 浮点数形式的负无穷大
RD_NAN 浮点数形式的无定义
逻辑常数
TRUE 真
FALSE 假
UNKNOWN 未知
基本数集
C_ 复数集
R_ 实数
Q_ 有理数
Z_ 整数
N_ 正整数
常用运算符(一定要在英文输入法状态下输入)
:: 连接库名和函数名
' 单引号
[] 下标运算符
. 连结运算符,小数点
@@ 函数复合迭代运算符
@ 函数符合运算符
! 阶乘运算符
!! 双阶乘
^ 乘幂
* 乘法
/ 除法
- 负号或减
+ 加
.. 范围(区间)运算符
in 属于(集合)
=
<> 不相等
>;<;<=;>=
$ 生成序列
and 与
not 非
xor 异或
or 或
assuming 假设(临时性的)
, 逗号,分隔序列用的
; 命令结束,显示结果
: 命令结束,不显示结果
常用函数
sin cos tan cot sec csc
arcsin arccos arctan arccot arcsec arccsc
sinh cosh tanh coth sech csch
arcsinh arccosh arctanh arccoth arcsech arccsch
exp ln log log2 log10 abs(绝对值,复数模)
binomial 二项展开式系数
gamma 伽马函数
max 最大值
min 最小值
sign 符号函数
sqrt 算术平方根
surd n次方根
ceil 上取整(2.5->3)
floor 下取整(2.5->2)
round 四舍五入
trunc 截去小数部分取整
Re 复数的实部
Im 复数的虚部
arg 复数的幅角主值
delete 清除标识符的值
domtype 查看数据类型
eval 计算符号值
float 计算浮点数近似值
% 最近的计算结果
last(n)或%n 最近的第n个计算结果
plot 显示图形对象
(四)、数据类型
标*的是要重点掌握的
DOM_INT 整数
DOM_RAT 有理数
DOM_COMPLEX 复数
DOM_FLOAT 浮点数
DOM_BOOL 逻辑常数
DOM_IDENT 标识符 *
DOM_EXPR 表达式 *
DOM_POLY 多项式
DOM_STRING 字符串
DOM_LIST 列表 *
DOM_SET 集合 *
DOM_ARRAY 数组
DOM_TABLE 列表
DOM_PROC 过程
matrix 矩阵和向量
ode 常微分方程
piecewise 条件定义对象
Series::Puiseux 截断式级数展开式
O 级数展开式的大O项
rec 递推方程,差分方程
(五)、命令语句
1.处理表达式
(1).subs 代入
格式:subs(f,old1=new1,old2=new2,…)
subs(a+b+c,a=x^2,b=10);
结果:
注意与赋值的区别, 代入并没有改变标识符的值
(2).subsex 比subs的范围更大
格式:subsex(f,old1=new1,old2=new2,…)
subsex(a+b+c,a+b=x^2);
结果:
(3).simplify 化简命令
格式
simplify(f)
simplify(exp(2*(3/2))-exp(3))
结果:
深度化简命令:Simplify
适用于三角函数
f:=(cos(x)^2-sin(x)^2)/(sin(x)*cos(x));
simplify(f);
Simplify(f);
结果:
(4).combine 合并
合并的是结构相同的项
combine(sqrt(2)*sqrt(5))
(5).collect 合并
合并的是指定标识符,次数相同的合并到一起
格式:collect(f,x)
collect(f,[x,y,z,…])
f:=x^2*y+z*x*y*y;
collect(f,x);
f:=x^2*y+z*x*y*y+z*y*y*x+x*x*y*z;
collect(f,[x,y]);
(6).expand 展开
格式
expand(f)
expand((z+1)*x*x*y+(2*z)*x*y*y)
(7).factor 分解因式
格式
factor(f)
factor(x^2-3*x+2)
(8).normal 和simplifyFraction 化简分式
格式
normal(f)
simplifyFraction(f)
p:=x/(x^6-1)+x^2/(x^4-1);
normal(p)
(9). radsimp 和 simplifyRadical 化简根式
格式
radsimp(f)
simplifyRadical(f)
相当于simplify(f,sqrt)
r:=sqrt(3*sqrt(3+2*sqrt(5-12*sqrt(3-2*sqrt(2))))+14);
radsimp(r)
2.列表
用[ ]括起来的一组数据,数据之间用逗号,分隔
[1,2,3,4,5]
列表中有一个方便的运算符$,可以表示有规律的一组数据
[$1..5]
[x_.i $i=1..9 step 2]
x与i之间用下划线_与.连结运算符(句点)连接, 注意step后的空格不能少
序列运算符$的语法如下
$a..b a,a+1,a+2,...,b
$a..b step c a,a+c,a+2c,...,b
f$n 重复n个f组成的序列
f(i)$i=a..b f(a),f(a+1),f(a+2),...f(b)
f(i)$i=a..b step c
f(i)$i in list list是列表
f(i)$i in set set是集合
3.集合
用花括号{ }括起来的一组数据,数据之间用逗号分隔
与列表不同, 集合的元素没有顺序, 且不可重复, 与数学中的集合概念类似
注意,若是对某个函数理解不清楚,可以运行?<函数>查帮助
?collect
后续会继续更新~