matlab实用教程Word格式文档下载.docx
- 文档编号:7891203
- 上传时间:2023-05-09
- 格式:DOCX
- 页数:68
- 大小:262.71KB
matlab实用教程Word格式文档下载.docx
《matlab实用教程Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《matlab实用教程Word格式文档下载.docx(68页珍藏版)》请在冰点文库上搜索。
A'
矩阵的Hermition转置。
若A为复数矩阵,则A'
为复数矩阵的共轭转置。
即,若A=(aij)=(xij+i*yij),则
。
A.'
数组转置。
为真正的矩阵转置,其没有进行共轭转置。
例3-1
>
symsabcdefgh;
A=[ab;
cd];
B=[ef;
gh];
C1=A.*B
C2=A.^B
C3=A*B/A
C4=A.*A-A^2
symsa11a12a21a22b1b2;
A=[a11a12;
a21a22];
B=[b1b2];
X=B/A;
%求解符号线性方程组X*A=B的解
x1=X
(1)
x2=X
(2)
计算结果为:
C1=
[a*e,b*f]
[c*g,d*h]
C2=
[a^e,b^f]
[c^g,d^h]
C3=
[-(a*c*f+c*b*h-a*e*d-b*d*g)/(a*d-b*c),(a*b*h-b^2*g+a^2*f-b*a*e)/(a*d-b*c)]
[-(-c*e*d+c*d*h+c^2*f-d^2*g)/(a*d-b*c),(a*d*h+a*c*f-b*c*e-b*d*g)/(a*d-b*c)]
C4=
[-b*c,b^2-a*b-b*d]
[c^2-a*c-d*c,-b*c]
x1=
(-a22*b1+b2*a21)/(a12*a21-a11*a22)
x2=
-(-a12*b1+a11*b2)/(a12*a21-a11*a22)
3.2基本运算
命令1合并同类项
函数collect
格式R=collect(S)%对于多项式S中的每一函数,collect(S)按缺省变量x的次数合并系数。
R=collect(S,v)%对指定的变量v计算,操作同上。
例3-2
symsxy;
R1=collect((exp(x)+x)*(x+2))
R2=collect((x+y)*(x^2+y^2+1),y)
R3=collect([(x+1)*(y+1),x+y])
R1=
x^2+(exp(x)+2)*x+2*exp(x)
R2=
y^3+x*y^2+(x^2+1)*y+x*(x^2+1)
R3=
[(y+1)*x+y+1,x+y]
命令2列空间的基
函数colspace
格式B=colspace(A)%返回矩阵B,其列向量形成由矩阵A的列向量形成的空间的坐标基,其中A可以是符号或数值矩阵。
而size(colspace(A),2)等于rank(A)。
即由A生成的空间维数等于A的秩。
例3-3
symsabc
A=sym([1,a;
2,b;
3,c])
B=colspace(A)
A=
[1,a]
[2,b]
[3,c]
B=
[1,0]
[0,1]
[-(3*b-2*c)/(-b+2*a),(-c+3*a)/(-b+2*a)]
命令3复合函数计算
函数compose
格式compose(f,g)%返回复合函数f[g(y)],其中f=f(x),g=g(y)。
其中符号x为函数f中由命令findsym(f)确定的符号变量,符号y为函数g中由命令findsym(g)确定的符号变量。
compose(f,g,z)%返回复合函数f[g(z)],其中f=f(x),g=g(y),符号x、y为函数f、g中由命令findsym确定的符号变量。
compose(f,g,x,z)%返回复合函数f[g(z)],而令变量x为函数f中的自变量f=f(x)。
令x=g(z),再将x=g(z)代入函数f中。
compose(f,g,x,y,z)%返回复合函数f[g(z)]。
而令变量x为函数f中的自变量f=f(x),而令变量y为函数g中的自变量g=g(y)。
令x=g(y),再将x=g(y)代入函数f=f(x)中,得f[g(y)],最后用指定的变量z代替变量y,得f[g(z)]。
例3-4
symsxyztuv;
f=1/(1+x^2*y);
h=x^t;
g=sin(y);
p=sqrt(-y/u);
C1=compose(f,g)%令x=g=sin(y),再替换f中的变量x=findsym(f)。
C2=compose(f,g,t)%令x=g=sin(t),再替换f中的变量x=findsym(f)。
C3=compose(h,g,x,z)%令x=g=sin(z),再替换h中的变量x。
C4=compose(h,g,t,z)%令t=g=sin(z),再替换h中的变量t。
C5=compose(h,p,x,y,z)%令x=p(y)=sqrt(-y/u),替换h中的变量x,再将y换成z。
C6=compose(h,p,t,u,z)%令t=p(u)=sqrt(-y/u),替换h中的变量t,再将u换成z。
C1=
1/(1+sin(y)^2*y)
C2=
1/(1+sin(t)^2*y)
C3=
sin(z)^t
C4=
x^sin(z)
C5=
((-z/u)^(1/2))^t
C6=
x^((-y/z)^(1/2))
命令4符号复数的共轭
函数conj
格式conj(X)%返回符号复数X的共轭复数
例3-5
X=real(X)+i*imag(X),则conj(X)=real(X)-i*imag(X)
命令5符号复数的实数部分
函数real
格式real(Z)%返回符号复数z的实数部分
命令6符号复数的虚数部分
函数imag
格式imag(Z)%返回符号复数z的虚数部分
命令7余弦函数的整函数
格式Y=cosint(X)%计算余弦函数在点X处的整函数值。
其中X可以是数值矩阵,或符号矩阵。
余弦函数的整函数定义为:
,其中
为Euler常数,
=0.57721566490153286060651209…i=1,2,…,size(X)。
Euler常数可以通过命令vpa('
eulergamma'
)获得。
例3-6
cosint(7.2)
cosint([0:
0.1:
1])
symsx;
f=cosint(x);
diff(x)
ans=
0.0960
Columns1through7
Inf-1.7279-1.0422-0.6492-0.3788-0.1778-0.0223
Columns8through11
0.10050.19830.27610.3374
1
命令8设置变量的精度
函数digits
格式digits(d)%设置当前的可变算术精度的位数为整数d位
d=digits%返回当前的可变算术精度位数给d
digits%显示当前可变算术精度的位数
说明设置有意义的十进制数值的、在Maple软件中用于做可变算术精度(命令为:
vpa)计算的数字位数。
其缺省值为32位数字。
例3-7
z=1.0e-16%z为一很小的数
x=1.0e+2%x为较大的数
digits(14)
y1=vpa(x*z+1)%大数1“吃掉”小数x*y
digits(15)
y2=vpa(x*z+1)%防止“去掉”小数x*y
z=
1.0000e-016
x=
100
y1=
1.0000000000000
y2=
1.00000000000001
命令9将符号转换为MATLAB的数值形式
函数double
格式R=double(S)%将符号对象S转换为数值对象R。
若S为符号常数或表达式常数,double返回S的双精度浮点数值表示形式;
若S为每一元素是符号常数或表达式常数的符号矩阵,double返回S每一元素的双精度浮点数值表示的数值矩阵R。
例3-8
gold_ratio=double(sym('
(sqrt(5)-1)/2'
))%计算黄金分割率。
T=sym(hilb(4))
R=double(T)
gold_ratio=
0.6180
T=
[1,1/2,1/3,1/4]
[1/2,1/3,1/4,1/5]
[1/3,1/4,1/5,1/6]
[1/4,1/5,1/6,1/7]
R=
1.00000.50000.33330.2500
0.50000.33330.25000.2000
0.33330.25000.20000.1667
0.25000.20000.16670.1429
命令10符号表达式的展开
函数expand
格式R=expand(S)%对符号表达式S中每个因式的乘积进行展开计算。
该命令通常用于计算多项式函数、三角函数、指数函数与对数函数等表达式的展开式。
例3-9
symsxyabct
E1=expand((x-2)*(x-4)*(y-t))
E2=expand(cos(x+y))
E3=expand(exp((a+b)^3))
E4=expand(log(a*b/sqrt(c)))
E5=expand([sin(2*t),cos(2*t)])
E1=
x^2*y-x^2*t-6*x*y+6*x*t+8*y-8*t
E2=
cos(x)*cos(y)-sin(x)*sin(y)
E3=
exp(a^3)*exp(a^2*b)^3*exp(a*b^2)^3*exp(b^3)
E4=
log(a*b/c^(1/2))
E5=
[2*sin(t)*cos(t),2*cos(t)^2-1]
命令11符号因式分解
函数factor
格式factor(X)%参量x可以是正整数、符号表达式阵列或符号整数阵列。
若X为一正整数,则factor(X)返回X的质数分解式。
若x为多项式或整数矩阵,则factor(X)分解矩阵的每一元素。
若整数阵列中有一元素位数超过16位,用户必须用命令sym生成该元素。
例3-10
symsabxy
F1=factor(x^4-y^4)
F2=factor([a^2-b^2,x^3+y^3])
F3=factor(sym('
12345678901234567890'
))
F1=
(x-y)*(x+y)*(x^2+y^2)
F2=
[(a-b)*(a+b),(x+y)*(x^2-x*y+y^2)]
F3=
(2)*(3)^2*(5)*(101)*(3803)*(3607)*(27961)*(3541)
命令12符号表达式的分子与分母
函数numden
格式[N,D]=numden(A)
说明将符号或数值矩阵A中的每一元素转换成整系数多项式的有理式形式,其中分子与分母是相对互素的。
输出的参量N为分子的符号矩阵,输出的参量D为分母的符号矩阵。
例3-11
symsxyabcd;
[n1,d1]=numden(sym(sin(4/5)))
[n2,d2]=numden(x/y+y/x)
A=[a,1/b;
1/cd];
[n3,d3]=numden(A)
n1=
6461369247334093
d1=
9007199254740992
n2=
x^2+y^2
d2=
y*x
n3=
[a,1]
[1,d]
d3=
[1,b]
[c,1]
命令13搜索符号表达式的最简形式
函数simple
格式r=simple(S)%该命令试图找出符号表达式S的代数上的简单形式,显示任意的能使表达式S长度变短的表达式,且返回其中最短的一个。
若S为一矩阵,则结果为整个矩阵的最短形式,而非是每一个元素的最简形式。
若没有输出参量r,则该命令将显示所有可能使用的算法与表达式,同时返回最短的一个。
[r,how]=simple(S)%没有显示中间的化简结果,但返回能找到的最短的一个。
输出参量r为一符号,how为一字符串,用于表示算法。
例3-12
symsx
R1=simple(cos(x)^4+sin(x)^4)
R2=simple(2*cos(x)^2-sin(x)^2)
R3=simple(cos(x)^2-sin(x)^2)
R4=simple(cos(x)+(-sin(x)^2)^(1/2))
R5=simple(cos(x)+i*sin(x))
R6=simple((x+1)*x*(x-1))
R7=simple(x^3+3*x^2+3*x+1)
[R8,how]=simple(cos(3*acos(x)))
计算的结果为:
1/4*cos(4*x)+3/4
3*cos(x)^2-1
cos(2*x)
R4=
cos(x)+i*sin(x)
R5=
exp(i*x)
R6=
x^3-x
R7=
(x+1)^3
R8=
4*x^3-3*x
how=
expand
命令14符号表达式的化简
函数simplify
格式R=simplify(S)
说明使用Maple软件中的化简规则,将化简符号矩阵S中每一元素。
例3-13
symsxabc
R1=simplify(sin(x)^4+cos(x)^4)
R2=simplify(exp(c*log(sqrt(a+b))))
S=[(x^2+5*x+6)/(x+2),sqrt(16)];
R3=simplify(S)
2*cos(x)^4+1-2*cos(x)^2
(a+b)^(1/2*c)
[x+3,4]
命令15符号矩阵的维数
函数size
格式d=size(A)%若A为m*n阶的符号矩阵,则输出结果d=[m,n]。
[m,n]=size(A)%分别返回矩阵A的行数于m,列数于n。
d=size(A,n)%返回由标量n指定的A的方向的维数:
n=1为行方向,n=2为列方向。
例3-14
symsabcd
A=[abc;
abd;
dcb;
cba];
d=size(A)
r=size(A,2)
d=
43
r=
3
命令16代数方程的符号解析解
函数solve
格式g=solve(eq)%输入参量eq可以是符号表达式或字符串。
若eq是一符号表达式x^2-2*x-1或一没有等号的字符串’x^2-2*x-1’,则solve(eq)对方程eq中的缺省变量(由命令findsym(eq)确定的变量)求解方程eq=0。
若输出参量g为单一变量,则对于有多重解的非线性方程,g为一行向量。
g=solve(eq,var)%对符号表达式或没有等号的字符串eq中指定的变量var求解方程eq(var)=0。
g=solve(eq1,eq2,…,eqn)%输入参量eq1,eq2,…,eqn可以是符号表达式或字符串。
该命令对方程组eq1,eq2,…,eqn中由命令findsym确定的n个变量如x1,x2,…,xn求解。
若g为一单个变量,则g为一包含n个解的结构;
若g为有n个变量的向量,则分别返回结果给相应的变量。
g=solve(eq1,eq2,…,eqn,var1,var2,…,varn)%对方程组eq1,eq2,…,eqn中指定的n个变量如var1,var2,…,varn求解。
注意:
对于单个的方程或方程组,若不存在符号解,则返回方程(组)的数值解。
例3-15
solve('
a*x^2+b*x+c'
)
'
b'
x+y=1'
x-11*y=5'
A=solve('
a*u^2+v^2'
'
u-v=1'
a^2-5*a+6'
)
[1/2/a*(-b+(b^2-4*a*c)^(1/2))]
[1/2/a*(-b-(b^2-4*a*c)^(1/2))]
-(a*x^2+c)/x
ans=
x:
[1x1sym]
y:
A=
a:
[4x1sym]
u:
v:
命令17以共同的子表达式形式重写一符号表达式
函数subexpr
格式[Y,SIGMA]=subexpr(X,SIGMA)
[Y,SIGMA]=subexpr(X,'
SIGMA'
说明找出符号表达式X中相同的子表达式,再结合命令pretty(X)将X中相同的、比较复杂的子字符串用符号%1,%2,…代替。
而用命令pretty(Y)将X中相同的、比较复杂的子字符串用符号SIGMA代替。
例3-16
t=solve('
a*x^3+b*x^2+c*x+d=0'
);
[r,s]=subexpr(t,'
s'
pretty(t)
pretty(r)
(略)
命令18特征多项式
函数poly
格式p=poly(A)或p=poly(A,v)
说明若A为一数值阵列,则返回矩阵A的特征多项式的系数,且有:
命令poly(sym(A))近似等于poly2sym(poly(A))。
其近似程度取决于舍入误差的大小。
若A为一符号矩阵,则返回矩阵A的变量为x的特征多项式。
若带上参量v,则返回变量为v的特征多项式。
例3-17
A=hilb(4);
p=poly(A)
q=poly(sym(A))
s=poly(sym(A),z)
p=
1.0000-1.67620.2652-0.00170.0000
q=
x^4-176/105*x^3+3341/12600*x^2-41/23625*x+1/6048000
s=
-176/105*z^3+3341/12600*z^2-41/23625*z+1/6048000+z^4
命令19将多项式系数向量转化为带符号变量的多项式
函数poly2sym
格式r=poly2sym(c)和r=poly2sym(c,v)
说明将系数在数值向量c中的多项式转化成相应的带符号变量的多项式(按次数的降幂排列)。
缺省的符号变量为x;
若带上参量v,则符号变量用v显示。
poly2sym使用命令sym的缺省转换模式(有理形式)将数值型系数转换为符号常数。
该模式将数值转换成接近的整数比值的表达式,否则用2的幂指数表示。
若x有一数值值,且命令sym能将c的元素精确表示,则eval(poly2sym(c))的结果与polyval(c,x)相同。
例3-18
r1=poly2sym([1234])
r2=poly2sym([.694228,sqrt
(2),s
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- matlab 实用教程