Matlab调用Maple
2011-05-10 09:17
如何在matlab中调用maple
 
  (不用安装maple软件就可调用)
 
  方法1:
 
  maple(’maplestatement’)
 
  其中maplestatement 是完整的maple语句,由一条或几条命令组成,必须符合maple 的语法
 
  方法2:
 
  maple(’function’,arg1, arg2,…)
 
  其中function为maple中的函数名称,arg1, arg2,…是函数function所用的参数。
 
  注:如果方法1行不通,可尝试方法2(个人经验)。
 
  基本代数部分
 
  如何用matlab求阶乘
 
  factorial(n) 求n的阶乘
 
  如何用matlab配方 
 
  没有发现matlab有这一命令,不过我们可以调用maple的命令,调用方法如下:
 
  首先加载maple中的student函数库,加载方法为:maple(’with(student)’)
 
  然后运行maple中的配方命令,格式为:
 
  maple(’completesquare(f)’) 把f配方,其中f为代数表达式或代数方程
 
  maple(’completesquare(f,x)’) 把f按指定的变量x配方,其中f同上
 
  maple(’completesquare(f,{x,y,...})’) 把f按指定的变量x,y,...配方
 
  maple(’completesquare(f,[x,y,...])’) 把f按指定的变量x,y,...配方,
 
  如何用matlab进行多项式运算
 
  (1) 合并同类项 
 
  syms 表达式中包含的变量 collect(表达式,指定的变量)
 
  (2)因式分解 
 
  syms 表达式中包含的变量 factor(表达式)
 
  (3)展开
 
  syms 表达式中包含的变量 expand(表达式)
 
  我们也可在matlab中调用maple的命令进行多项式的运算,调用格式如下:
 
  maple(’maple中多项式的运算命令’)
 
  如何用matlab进行分式运算 
 
  发现matlab只有一条处理分式问题的命令,其使用格式如下:
 
  [n,d]=numden(f) 把符号表达式f化简为有理形式,其中分子和分母的系数为整数且分子分母不含公约项,返回结果n为分子,d为分母。注意:f必须为符号表达式
 
  不过我们可以调用maple的命令,调用方法如下:
 
  maple(’denom(f)’)
  提取分式f的分母
 
  maple(’numer(f)’)
  提取分式f的分子
 
  maple(’normal(f)’ )
  把分式f的分子与分母约分成最简形式
 
  maple(’expand(f)’)
  把分式f的分子展开,分母不变且被看成单项。
 
  maple(’factor(f)’)
  把分式f的分母和分子因式分解,并进行约分。
 
 
  如何用Matlab进行因式分解
 
  syms 表达式中包含的变量 factor(表达式)
 
    如何用Matlab展开
 
  syms 表达式中包含的变量 expand(表达式) 
 
   如何用Matlab进行化简
 
  syms 表达式中包含的变量 simplify(表达式) 
 
  如何用Matlab合并同类项
 
  syms 表达式中包含的变量 collect(表达式,指定的变量)
 
  如何用Matlab进行数学式的转换 
 
  调用Maple中数学式的转换命令,调用格式如下:
 
  maple(‘Maple的数学式转换命令’)
 
  即:maple(‘convert(表达式,form)’) 将表达式转换成form的表示方式
 
  maple(‘convert(表达式,form, x)’) 指定变量为x,将依赖于变量x的函数转换成form的表示方式(此指令仅对form为exp与sincos的转换式有用)
 
  如何用Matlab进行变量替换
 
  syms 表达式和代换式中包含的所有变量 subs(表达式,要替换的变量或式子,代换式) 
 
   如何用matlab进行复数运算 
 
  a+b*i 或 a +b*j
  表示复数a+bi 或 a+bj
 
  real(z)
  求复数z的实部
 
  imag(z)
  求复数z的虚部
 
  abs(z)
  求复数z的模
 
  angle(z)
  求复数z的辐角,
 
  conj(z)
  求复数z的共轭复数
 
  exp(z)
  复数的指数函数,表示e^z
 
 
  如何在matlab中表示集合
 
  [a, b, c,…]  表示由a, b, c,…组成的集合 (注意:元素之间也可用空格隔开)
 
  unique(A) 表示集合A的最小等效集合(每个元素只出现一次)
 
  也可调用maple的命令,格式如下:
 
  maple('{a, b, c,…}') 表示由a, b, c,…组成的集合
 
  下列命令可以生成特殊的集合:
 
  maple(‘{seq(f(i),)}’) 生成集合{f(n), f(n+1), f(n+2), … , f(m)}
 
  如何用Matlab求集合的交集、并集、差集和补集 
 
  union(A,B)
  求集合A和B的并集
 
  intersect(A,B)
  求集合A和B的交集
 
  setdiff(A,B)
  求集合A和B的差集A-B
 
  setdiff(U,A)
  求集合A关于全集U的补集
 
 
  我们也可以调用Maple的相应功能,调用方法如下:
 
  maple('用Maple求集合的交集、并集、差集和补集的命令 ')
 
  具体地说,共有下列几个调用命令:
 
  maple( 'A union B' ) 求集合A和B的并集
 
  maple( 'A intersect B ' ) 求集合A和B的交集
 
  maple('A minus B ' ) 求差集A-B
 
  maple( '全集I minus A ' ) 求集合A关于全集I的补集
 
  如何用matlab排序
 
  sort(v)  将向量v的元素从小到大排列(升序排列)
1 内部常数
pi 圆周率
exp(1) 自然对数的底数e
i 或j 虚数单位
Inf或 inf 无穷大
2 数学运算符
a+b 加法
a-b 减法
a*b 矩阵乘法
a.*b 数组乘法
a/b 矩阵右除
a\b 矩阵左除
a./b 数组右除
a.\b 数组左除
a^b 矩阵乘方
a.^b 数组乘方
-a 负号
’ 共轭转置
.' 一般转置
3 关系运算符
== 等于
大于
= 大于或等于
~= 不等于
4 常用内部数学函数
指数函数 exp(x) 以e为底数
对数函数 log(x) 自然对数,即以e为底数的对数
log10(x) 常用对数,即以10为底数的对数
log2(x) 以2为底数的x的对数
开方函数 sqrt(x) 表示x的算术平方根
绝对值函数 abs(x) 表示实数的绝对值以及复数的模
三角函数
(自变量的单位为弧度) sin(x) 正弦函数
cos(x) 余弦函数
tan(x) 正切函数
cot(x) 余切函数
sec(x) 正割函数
csc(x) 余割函数
反三角函数
asin(x) 反正弦函数
acos(x) 反余弦函数
atan(x) 反正切函数
acot(x) 反余切函数
asec(x) 反正割函数
acsc(x) 反余割函数
双曲函数
sinh(x) 双曲正弦函数
cosh(x) 双曲余弦函数
tanh(x) 双曲正切函数
coth(x) 双曲余切函数
sech(x) 双曲正割函数
csch(x) 双曲余割函数
matlab求导反双曲函数
asinh(x) 反双曲正弦函数
acosh(x) 反双曲余弦函数
atanh(x) 反双曲正切函数
acoth(x) 反双曲余切函数
asech(x) 反双曲正割函数
acsch(x) 反双曲余割函数
求角度函数 atan2(y,x) 以坐标原点为顶点,x轴正半轴为始边,从原点到点(x,y)的射线为终边的角,其单位为弧度,范围为( , ]
数论函数 gcd(a,b) 两个整数的最大公约数
lcm(a,b) 两个整数的最小公倍数
排列组合函数 factorial(n) 阶乘函数,表示n的阶乘
复数函数
real(z) 实部函数
imag(z) 虚部函数
abs(z) 求复数z的模
angle(z) 求复数z的辐角,其范围是( , ]
conj(z) 求复数z的共轭复数
求整函数与截尾函数 ceil(x) 表示大于或等于实数x的最小整数
floor(x) 表示小于或等于实数x的最大整数
round(x) 最接近x的整数
最大、最小函数 max([a,b,c,...]) 求最大数
min([a,b,c,..]) 求最小数
符号函数
sign(x)
5 自定义函数-调用时:“[返回值列]=M文件名(参数列)”
function 返回变量=函数名(输入变量)
注释说明语句段(此部分可有可无)
函数体语句
6.进行函数的复合运算 
compose(f,g) 返回值为f(g(y))
compose(f,g,z) 返回值为f(g(z))
compose(f,g,x,.z) 返回值为f(g(z))
compose(f,g,x,y,z) 返回值为f(g(z))
7 因式分解
syms 表达式中包含的变量
factor(表达式)
8 代数式展开 
syms 表达式中包含的变量
expand(表达式)
9 合并同类项 
syms 表达式中包含的变量
collect(表达式,指定的变量)
10 进行数学式化简 
syms 表达式中包含的变量
simplify(表达式)
11 进行变量替换
syms 表达式和代换式中包含的所有变量
subs(表达式,要替换的变量或式子,代换式)
12 进行数学式的转换
调用Maple中数学式的转换命令,调用格式如下:maple(‘Maple的数学式转换命令’) 即:
maple(‘convert(表达式,form)’’)将表达式转换成form的表示方式
maple(‘convert(表达式,form, x)’) 指定变量为x,将依赖于变量
x的函数转换成form的表示方式(此指令仅对form为exp与sincos的转换式有用)
13 解方程 
solve(’方程’,’变元’)
注:方程的等号用普通的等号: =
14 解不等式
调用maple中解不等式的命令即可,调用形式如下:
maple('maple中解不等式的命令')*
具体说,包括以下五种:
maple(' solve(不等式)')
maple(' solve(不等式,变元)' )
maple(' solve({不等式},变元)' )
maple(' solve(不等式,{变元})' )
maple(' solve({不等式},{变元})' )
15 解不等式组
调用maple中解不等式组的命令即可,调用形式如下:
maple('maple中解不等式组的命令')
即:maple(' solve({不等式组},{变元组})' )
16 画图
方法1:先产生横坐标x的取值和相应的纵坐标y的取值,然后执行命令: plot(x,y)
方法2:fplot('f(x)',[xmin,xmax])
fplot('f(x)',[xmin,xmax,ymin,ymax])
方法3:ezplot('f(x)')
ezplot('f(x)' ,[xmin,xmax])
ezplot('f(x)' ,[xmin,xmax,ymin,ymax])
17 求极限
(1) 极限:
syms x
limit(f(x), x, a)
(2)单侧极限:
左极限:
syms x
limit(f(x), x, a,’left’)
右极限:
syms x
limit(f(x), x, a,’right’)
18 求导数 
diff('f(x)')
diff('f(x)','x')
或者:
Syms x
Diff(f(x))
syms x
diff(f(x), x)
19 求高阶导数 
diff('f(x)',n)
diff('f(x)','x',n)
或者:
syms x
diff(f(x),n)
syms x
diff(f(x), x,n)
20 在MATLAB中没有直接求隐函数导数的命令,但是我们可以根据数学中求隐函数导数的方法,在中一步一步地进行推导;也可以自己编一个求隐函数导数的小程序;不过,最简便的方法是调用Maple中求隐函数导数的命令,调用格式如下:
maple('implicitdiff(f(x,y)=0,y,x)')*
MATLAB中,没有直接求参数方程确定的函数的导数的命令,只能根据参数方程确定的函数的求导公式
一步一步地进行推导;或者,干脆自己编一个小程序,应用起来会更加方便。
21 求不定积分 
int('f(x)')
int ('f(x)','x')
或者:
syms x
int(f(x))
syms x
int(f(x), x)
22 求定积分、广义积分 
int('f(x)',a,b)
int ('f(x)','x',a,b)
或者:
syms x
int(f(x),a,b)
syms x
int(f(x), x,a,b)
23 进行换元积分的计算
自身没有提供这一功能,但是可以调用Maple函数库中的changevar命令,调用方法如下:
maple(' with(student)' ) 加载student函数库后,才能使用changevar命令
maple(' changevar( m(x)=p(u), Int(f(x),x) ) ' ) 把积分表达式中的m(x)代换成p(u)
24 进行分部积分的计算
自身没有提供这一功能,但是可以调用Maple函数库中的intparts命令,调用方法如下:
maple(' with(student)' ) 加载student函数库后,才能使用intparts命令
maple('intparts(Int(f(x),x),u)' ) 指定u,用分部积分公式 进行计算
25 对数列和级数进行求和 
syms n
symsum(f(n), n ,a ,b )
26 进行连乘 
maple('product(f(n),n=a..b)')
27 展开级数 
syms x
Taylor(f(x), x, n, a)
28 进行积分变换
syms s t
laplace( f(t), t, s ) 拉普拉斯变换
ilaplace( F(s), s, t ) 拉普拉斯变换的逆变换
 
syms t ω
fourier( f(t), t, ω) 傅立叶变换
ifourier( F(ω), ω, t ) 傅立叶变换的逆变换
 
syms n z
ztrans( f(n), n, z) Z变换
iztrans( F(z), z, n ) Z变换的逆变换
matlab中,矩形法、梯形法和辛普森法求近似积分
 可以用自身的命令,也可调用Maple的相应命令。调用方法如下:
maple('with(student) ')
maple('Maple中求定积分近似值的命令')
29 解微分方程 
Dsolve('微分方程','自变量')
dsolve('微分方程','初始条件或边界条件','自变量')
30 解微分方程组 
Dsolve('微分方程组','自变量')
dsolve('微分方程组','初始条件或边界条件','自变量')