📄 3.txt
字号:
3.1415926535897932384626433832795028841971693993751058209749445923078164…
06286208998628034825342117068
v =
[ x^2-1]
[ x^2-4]
statement:
map(ifactor,array([[x^2-1],[x^2-4]]));
result:
Error, (in ifactor) invalid arguments
statement:
map(factor,array([[x^2-1],[x^2-4]]));
result:
matrix([[(x-1)*(x+1)], [(x-2)*(x+2)]])
w =
[ (x-1)*(x+1)]
[ (x-2)*(x+2)]
命令6 初始化Maple内核
函数 mapleinit
格式 mapleinit 该命令用于确定包含Maple库的路径,再装载Maple的线性代数与积分变换包、初始化命令digits、指定几个别名。用户可以编辑mapleinit的M-文件,用于改变到Maple包的路径,只需按如下的方法改变变量initstring的值:
1.若用户已经有一Maple V,Release 5的库在目录C:\Maple\Lib上,在文件mapleinit.m中加入:maplelib = 'C:\MAPLE\LIB'
2.从MATLAB中删除旧的Maple包版本。
命令7 Maple数学函数的数值计算
函数 mfun
格式 Y = mfun('function',par1,par2,par3,par4)
说明 计算一指定的Maple软件中已知的数学函数function的数值。每一参量par为该函数相应的具体数值。用户可以输入满4个参量。最后指定的参量可以是矩阵,通常对应于x。其他参量的位数取决于该函数规定的范围。用户可以通过下面的命令获得相关参数的信息:help mfunlist;mhelp function;Maple用16位精度计算函数function。函数function中的任何奇异值将返回NaN。
例3-53
>>M1 = mfun('dilog',5)
>>M2 = mfun('Psi',[3*i 0])
计算结果为:
M1 =
-2.3699
M2 =
1.1080 + 1.7375i NaN
命令8 列出命令mfun中特定的Maple函数
函数 mfunlist
格式 mfunlist
1.列出在使用命令mfun中用到的特殊的数学函数。下表中参量的一些约定:x,y:实数参量;z,z1,z2:复数参量;m,n:整数参量
表3-1 mfun特殊函数
函数名 定 义 Mfun名 参量说明
Bernoulli数
与多项式 生成函数:
Bernoulli(n)
Bernoulli(n,t) n≥0
0<|t|<2π
Bessel函数 BesselI, BesselJ:第一类Bessel函数
BesselK, BesselY:第二类Bessel函数 BesselJ(v,x)
BesselY(v,x)
BesselI(v,x)
BesselK(v,x) v为实数
Beta函数
Beta(x,y)
二项式系数
Binomial(m,n)
完全椭圆积分 第一、二、三类Legendre完全椭圆积分 LegendreKc(k)
LegendreEc(k)
LegendrePic(a,k) a为任意实数
-∞<a<∞
k为任意实数
0<k<1
带余模的完全
椭圆积分 与余模相关的第一、二、三类Legendre完全椭圆积分 LegendreKc1(k)
LegendreEc1(k)
LegendrePic1(a,k) a为任意实数
-∞<a<∞
k为任意实数
0<k<1
余差函数
与它的累积分 Erfc(z) =
erfc(n,z) =
erfc(z)
erfc(n,z) n>0
Dawson积分
dawson(x)
Ψ-函数
Psi(x)
二重对数积分
dilog(x) x>1
误差函数
erf(z)
Euler数与多项式 生成Euler数的函数:
euler(n)
euler(n,z) n≥0
|t|<π/2
指数积分
Ei(n,z)
Ei(x) n≥0
real(z)>0
Fresnel正弦
与余弦积分
FresnelC(x)
FresnelS(x)
Г-函数
GAMMA(z)
调和函数
=Ψ(n+1) + γ harmonic(n) n>0
双曲正弦
与余弦积分
Chi(z) = γ+ln(z) +
Shi(z)
Chi(z)
广义超几何函数 F(n,d,z) =
hypergeom(n,d,x)
其中
n = [n1,n2,…]
d = [d1,d2,…] n1,n2,… 为实数
d1,d2,… 为非负实数
不完全椭圆积分 第一、二、三类不完全Legendre完全椭圆积分 LegendreF(x,k)
LegendreE(x,k)
LegendrePi(x,a,k) 0<x≤∞,a为实数
-∞<a<∞,k为实数
0<k<1
不完全Г-函数 Г(a,z)=
GAMMA(z1,z2)
Г-函数的对数 lnГ(z) = ln(Г(z)) lnGAMMA(z)
对数积分
= Ei(ln(x)) Li(x) x>1
Г多项式函数 其中Ψ(z)为Γ-函数
Psi(n,z) N≥0
移位正弦积分 Ssi(z)=Si(z) – π/2 Ssi(z)
对于上面的特殊函数function,用户可以通过下面的命令得到更多的帮助信息:mhelp function
总的来说,函数的精度跟它的根相比会较低,且当它的参数相对而言较大时,精度也较底。函数的执行时间取决于特定的函数与它的输入参量。总之,其计算将比标准的MATLAB计算慢一些。
2.正交多项式函数:
下面的函数需要Maple正交多项式包,它们仅仅对于MATLAB的扩展符号数学工具箱有用。在使用这些函数之前,用户要用下面的命令初始化Maple正交多项式包:maple('with','orthopoly')
表3-2 正交多项式函数
下表参量的约定:n:非负整数;x:任意实数
多 项 式 Maple名 参量说明
Gegenbauer多项式 G(n,a,x) a为非有理数代数表达式或者是大于-1/2的有理数
Hermite多项式 H(n,x)
Laguerre多项式 L(n,x)
广义Laguerre多项式 L(n,a,x) a为非有理数代数表达式或者是大于-1的有理数
Legendre P(n,x)
Jacobi P(n,a,b,x) a与b为非有理数代数表达式或者是大于-1的有理数
第一、二类Chebyshev多项式 T(n,x)U(n,x)
命令9 Maple命令帮助
函数 mhelp
格式 mhelp topic、mhelp('topic')
说明 返回Maple软件中指定的Maple标题topic的在线帮助文档信息。
命令10 交互式计算Riemann和
函数 rsums
格式 rsums(f) %交互式地通过Riemann和计算函数f(x)的积分。rsums(f)显示函数f 的图形。用户可以通过拖动图形下方的滑块来调整Riemann和的项数,有效的项数从2到128。
例3-54
>>rsums sin(-5*x^2)
计算图形为图3-16。
图3-16 函数的Riemann和
命令11 在一符号表达式或矩阵中进行符号替换
函数 subs
格式 R = subs(S) %用从调用的函数中获得的变量值,或MATLAB的工作空间中存在的变量值,替换表达式S中所有出现的相同的变量,同时自动进行化简计算;若是数值表达式,则计算出结果。
R = subs(S,old,new) %用新值new替换表达式s中的旧值old,参量old是一符号变量或代表一变量名的字符串,new是一符号/数值变量或表达式。若old与new为有相同大小的阵列,则用new中相应的元素替换old中的元素;若S与old为标量,而new为阵列或单元阵列,则标量S与old将扩展为与new同型的阵列;若new为数值矩阵的单元阵列,则替换按元素的方向执行。若subs(S,old,new)没有改变S,则subs(S,old,new)被证明是可靠的。这提供了对以前版本的向后兼容性,且不会交换参量的位置。
例3-55
>>a = 980,C1=3;
>>y = dsolve('Dy = -a*y')
>>syms b
>>subs(y)
>>subs(a+b,a,4)
>>subs(cos(a)+sin(b),{a,b},{sym('alpha'),2})
>>subs(exp(a*t),'a',-magic(2))
>>subs(x*y,{x,y},{[0 1;-1 0],[1 -1;-2 1]})
命令12 创建符号数值、变量与对象
函数 sym
格式 S = sym(A) %用输入参量A,构造一类型为‘sym’的对象s。若A为字符串,则S为符号数值或变量;若A为一数值标量或矩阵,则S为代表所给数值的符号表达式。
x = sym('x') %创建一名字为‘x’的符号变量,且将结果存于x。
pi = sym('pi') %创建一符号数值,这可避免了用浮点近似表示π的误差,pi的这种创建方法将暂时地代替了有相同名字、用于生成无理数π的近似值的内建数值函数pi.m。
x = sym('x','real') %创建一实符号变量。若x有了具体的值,则命令clear x只能清除x的值,而不能改变x的“属性”。
x = sym('x','unreal') %使x变成一纯粹的、没有任何附加属性的符号变量。
S = sym(A,flag) %将一数值标量或矩阵转换成符号形式。对浮点数值的转换方法要用第二个参量flag来指定。其中flag可以是'r'、'd'、'e'、'f'。
’f’:代表“浮点格式”。
’r’:代表“有理格式”(该方式为缺省转换格式)。
’e’:代表“估计误差”。
’d’:代表“十进制格式”。
命令13 创建多个符号对象的快捷命令
函数 syms
格式 syms arg1 arg2 … %定义arg1、arg2为符号
syms arg1 arg2 … real %该命令是下列命令的简洁形式:
arg1 = sym('arg1','real');
arg2 = sym('arg2','real'); …
syms arg1 arg2 … unreal %该命令是下列命令的简洁形式:
arg1 = sym('arg1','unreal');
arg2 = sym('arg2','unreal'); …
注:clear x不能清除符号变量x的属性“real”,只能清除变量x。要想清除该属性,要输入:syms x unreal或clear mex或clear all。执行后面的两个命令后,Maple内核将重新装载入MATLAB的工作空间(这是不可取的,因为花费时间)。
例3-56
>>syms x beta real %符号对象已经生成,执行下面一些操作:
>>whos
将显示工作空间中存在变量的详细信息:
Name Size Bytes Class
beta 1x1 132 sym object
x 1x1 126 sym object
Grand total is 7 elements using 258 bytes
y = x + i*beta; clear x; y
通过上面的操作,我们看到,当x被清除掉后,y的值并没有马上改变:
y =
x+i*beta
命令14 将符号多项式转化为数值多项式
函数 sym2poly
格式 c = sym2poly(s) %返回符号多项式s的数值系数行向量c。多项式自变量次数的系数按降幂排列。即行向量c的第一分量c1为多项式s的最高次数项的系数,c2为第二高次数项的系数,如此类推。
例3-57
>>syms x u;
>>c1 = sym2poly(3*x^3 - 2*x^2 – sqrt(5))
>>c2 = sym2poly(u^4 – 3 + 5*u^2)
计算结果为:
c1 =
3.0000 -2.0000 0 -2.2361
c2 =
1 0 5 0 -3
命令15 可变精度算法
函数 vpa
格式 R = vpa(A) %用可变精度算法来计算A中的每一元素,使其成为有d位精确度的十进制数。其中d为命令digits设置的当前位数。R中的每一元素为一符号表达式。
R = vpa(A,d)或R = vpa A d %用参量d指定的位数(而非命令digits设置的位数)来表示A中的每一元素。R中的每一元素为一符号表达式。
例3-58
>>digits(25)
>>q = vpa(sym(sin(pi/6)))
>>p = vpa(pi)
>>gold_ratioi = vpa('(sqrt(5)-1)/2')
>>vpa pi 75
>>A = vpa(gallery(5),8)
>>B = vpa(hilb(3),5)
计算结果为:
q =
.5000000000000000000000000
p =
3.141592653589793238462643
gold_ratioi =
.6180339887498948482045870
ans =
3.14159265358979323846264338327950288419716939937510582097… 494459230781640629
A =
[ -9., 11., -21., 63., -252.]
[ 70., -69., 141., -421., 1684.]
[ -575., 575., -1149., 3451., -13801.]
[ 3891., -3891., 7782., -23345., 93365.]
[ 1024., -1024., 2048., -6144., 24572.]
B =
[ 1., .50000, .33333]
[ .50000, .33333, .25000]
[ .33333, .25000, .20000]
命令16 符号表达式的C语言代码
函数 ccode
格式 ccode(s) %返回C语言的、用于计算符号表达式s的语句段落
例3-59
>>syms x
>>s = taylor(exp(x));
>>ccode(s)
计算结果为:
ans =
t0 = 1.0+x+x*x/2.0+x*x*x/6.0+x*x*x*x/24.0+x*x*x*x*x/120.0;
注:t0为 在x=0附近的计算公式(Taylor展式)。
命令17 符号表达式的Fortran语言代码
函数 fortran
格式 fortan(s) %返回一Fortan语言的、用于计算符号表达式s的语句段落
例3-60
>>syms x
>>f = taylor(sin(x));
>>F1 = fortran(f)
>>H = sym(hilb(4));
>>F2 = fortran(t*(H))
计算结果为:
F1 =
t0 = x-x**3/6+x**5/120
F2 =
T(1,1) = t T(1,2) = t/2 T(1,3) = t/3 T(1,4) = t/4
T(2,1) = t/2 T(2,2) = t/3 T(2,3) = t/4 T(2,4) = t/5
T(3,1) = t/3 T(3,2) = t/4 T(3,3) = t/5 T(3,4) = t/6
T(4,1) = t/4 T(4,2) = t/5 T(4,3) = t/6 T(4,4) = t/7
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -