一MATLAB基础知识Word格式文档下载.docx
《一MATLAB基础知识Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《一MATLAB基础知识Word格式文档下载.docx(16页珍藏版)》请在冰豆网上搜索。
由一个英文字母引导,后面可以跟字母数字以及下划线。
变量名区分大小写,且变量名的第一个字母必须是英文字母,变量名不得包含空格,标点。
二.矩阵运算
1.用matlab函数创建矩阵
•空阵[]—matlab允许输入空阵,当一项操作无结果时,返回空阵。
•rand——随机矩阵
•eye——单位矩阵
•zeros——全部元素都为0的矩阵
•ones——全部元素都为1的矩阵
A=[12;
34]
A=
12
34
>
B=[23;
41]
B=
23
41
A+B
ans=
35
75
A*B
105
2213
A.*B
26
124
A.^2
14
916
A^2
710
1522
C=2
C=
2
A+C
56
a=[123];
b=[234]
b=
234
a.*b
2612
sum(a.*b)
20
sum(a*b'
)
2.矩阵的其它运算
•inv——矩阵求逆
•det——行列式的值
•eig——矩阵的特征值
•
•diag——对角矩阵
•’——矩阵转置
•sqrt——矩阵开方
a=[1:
12];
b=reshape(a,3,4)
c=zeros(3,4);
c(:
)=a(:
14710
25811
36912
c=
3.矩阵的变向
rot90:
旋转;
fliplr:
上翻;
flipud:
下翻
4.矩阵的抽取
diag:
抽取主对角线;
tril:
抽取主下三角;
triu:
抽取主上三角
5.roots求多项式的根
•>
r=roots(p)
•r=
•12.1229
•-5.7345
•-0.3884
6.conv多项式乘法
b=[456];
7.>
c=conv([123],[456])
8.
9.c=
10.
11.413282718
12.c=conv([123],conv([456],[789]))
13.c=
14.
15.28123336530594387162
p=poly2str(c,'
x'
p=
28x^6+123x^5+336x^4+530x^3+594x^2+387x+162
多项式除法
[d,r]=deconv(c,a)r是余数,d是c除a后的整数
c=[4.0013.0028.0027.0018.00]
413282718
d=deconv(c,a)
d=
456
8.多项式微分
命令格式:
polyder(p):
求p的微分
polyder(a,b):
求多项式a,b乘积的微分
[p,q]=polyder(a,b):
求多项式a,b商的微分
a=[12345];
poly2str(a,'
x^4+2x^3+3x^2+4x+5
b=polyder(a)
4664
poly2str(b,'
4x^3+6x^2+6x+4
9.数据分析与插值函数
max——各列最大值
mean——各列平均值
sum——各列求和
std——各列标准差
var——各列方差
sort——各列递增排序
命令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)
Size的用法见书p32
命令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)
43
r=
3
命令1极限
函数limit
格式limit(F,x,a)%计算符号表达式F=F(x)的极限值,当x→a时。
limit(F,a)%用命令findsym(F)确定F中的自变量,设为变量x,再计算F的极限值,当x→a时。
limit(F)%用命令findsym(F)确定F中的自变量,设为变量x,再计算F的极限值,当x→0时。
limit(F,x,a,'
right'
)或limit(F,x,a,'
left'
)%计算符号函数F的单侧极限:
左极限x→a-或右极限x→a+。
例3-25
symsxathn;
L1=limit((cos(x)-1)/x)
L2=limit(1/x^2,x,0,'
L3=limit(1/x,x,0,'
L4=limit((log(x+h)-log(x))/h,h,0)
v=[(1+a/x)^x,exp(-x)];
L5=limit(v,x,inf,'
L6=limit((1+2/n)^(3*n),n,inf)
L1=
0
L2=
inf
L3=
-inf
L4=
1/x
L5=
[exp(a),0]
L6=
exp(6)
命令2导数(包括偏导数)
函数diff
格式diff(S,'
v'
)、diff(S,sym('
))%对表达式S中指定符号变量v计算S的1阶导数。
diff(S)%对表达式S中的符号变量v计算S的1阶导数,其中v=findsym(S)。
diff(S,n)%对表达式S中的符号变量v计算S的n阶导数,其中v=findsym(S)。
diff(S,'
n)%对表达式S中指定的符号变量v计算S的n阶导数。
例3-26
symsxyt
D1=diff(sin(x^2)*y^2,2)%计算
D2=diff(D1,y)%计算
D3=diff(t^6,6)
D1=
-4*sin(x^2)*x^2*y^2+2*cos(x^2)*y^2
D2=
-8*sin(x^2)*x^2*y+4*cos(x^2)*y
D3=
720
命令3符号函数的积分
函数int
格式R=int(S,v)%对符号表达式S中指定的符号变量v计算不定积分。
注意的是,表达式R只是函数S的一个原函数,后面没有带任意常数C。
R=int(S)%对符号表达式S中的符号变量v计算不定积分,其中v=findsym(S)。
R=int(S,v,a,b)%对表达式s中指定的符号变量v计算从a到b的定积分
R=int(S,a,b)%对符号表达式s中的符号变量v计算从a到b的定积分,其中v=findsym(S)。
例3-27
symsxztalpha
INT1=int(-2*x/(1+x^3)^2)
INT2=int(x/(1+z^2),z)
INT3=int(INT2,x)
INT4=int(x*log(1+x),0,1)
INT5=int(2*x,sin(t),1)
INT6=int([exp(t),exp(alpha*t)])
INT1=
-2/9/(x+1)+2/9*log(x+1)-1/9*log(x^2-x+1)-2/9*3^(1/2)*atan(1/3*(2*x-1)*…3^(1/2))-2/9*(2*x-1)/(x^2-x+1)
INT2=
x*atan(z)
INT3=
1/2*x^2*atan(z)
INT4=
1/4
INT5=
1-sin(t)^2
INT6=
[exp(t),1/alpha*exp(alpha*t)]
命令4常微分方程的符号解
函数dsolve
格式r=dsolve('
eq1,eq2,…'
'
cond1,cond2,…'
说明对给定的常微分方程(组)eq1,eq2,…中指定的符号自变量v,与给定的边界条件和初始条件cond1,cond2,….求符号解(即解析解)r;
若没有指定变量v,则缺省变量为t;
在微分方程(组)的表达式eq中,大写字母D表示对自变量(设为x)的微分算子:
D=d/dx,D2=d2/dx2,…。
微分算子D后面的字母则表示为因变量,即待求解的未知函数。
初始和边界条件由字符串表示:
y(a)=b,Dy(c)=d,D2y(e)=f,等等,分别表示
,
若边界条件少于方程(组)的阶数,则返回的结果r中会出现任意常数C1,C2,…;
dsolve命令最多可以接受12个输入参量(包括方程组与定解条件个数,当然我们可以做到输入的方程个数多于12个,只要将多个方程置于一字符串内即可)。
若没有给定输出参量,则在命令窗口显示解列表。
若该命令找不到解析解,则返回一警告信息,同时返回一空的sym对象。
这时,用户可以用命令ode23或ode45求解方程组的数值解。
例3-28
D1=dsolve('
D2y–Dy=exp(x)'
)
-exp(x)*t+C1+C2*exp(t)
3.2.5Taylor级数
命令1符号函数的Taylor级数展开式
函数taylor
格式r=taylor(f,n,v)%返回符号表达式f中的、指定的符号自变量v(若表达式f中有多个变量时)的n-1阶的Maclaurin多项式(即在零点附近v=0)近似式,其中v可以是字符串或符号变量。
r=taylor(f)%返回符号表达式f中的、符号变量v的6阶的Maclaurin多项式(即在零点附近v=0)近似式,其中v=findsym(f)。
r=taylor(f,n,v,a)%返回符号表达式f中的、指定的符号自变量v的n-1阶的Taylor级数(在指定的a点附近v=a)的展开式。
其中a可以是一数值、符号、代表一数字值的字符串或未知变量。
我们指出的是,用户可以以任意的次序输入参量n、v与a,命令taylor能从它们的位置与类型确定它们的目的。
解析函数f(x)在点x=a的Taylor级数定义为:
例3-46
symsxyapimm1m2
f=sin(x+pi/3);
T1=taylor(f)
T2=taylor(f,9)
T3=taylor(f,a)
T1=
1/2*3^(1/2)+1/2*x-1/4*3^(1/2)*x^2-1/12*x^3+1/48*3^(1/2)*x^4+1/240*x^5
T2=
1/2*3^(1/2)+1/2*x-1/4*3^(1/2)*x^2-1/12*x^3+1/48*3^(1/2)*x^4+1/240*x^5-1/1440*3^(1/2)*x^6-1/10080*x^7+1/80640*3^(1/2)*x^8
T3=
sin(a+1/3*pi)+cos(a+1/3*pi)*(x-a)-1/2*sin(a+1/3*pi)*(x-a)^2-1/6*cos(a+1/3*pi)*(x-a)^3+1/24*sin(a+1/3*pi)*(x-a)^4+1/120*cos(a+1/3*pi)*(x-a)^5
符号微积分与积分变换
•diff(f)—对缺省变量求微分
•diff(f,v)—对指定变量v求微分
•diff(f,v,n)—对指定变量v求n阶微分
•int(f)—对f表达式的缺省变量求积分
•int(f,v)—对f表达式的v变量求积分
int(f,v,a,b)—对f表达式的v变量在(a,b)区间求定积分
例9.计算二重不定积分
F=int(int('
x*exp(-x*y)'
),'
y'
F=
1/y*exp(-x*y)
例14解方程组x+y+z=1
x-y+z=2
2x-y-z=1
f=solve('
x+y+z=1'
x-y+z=2'
2*x-y-z=1'
f=
x:
[1x1sym]f.x
ans=2/3
y:
[1x1sym]f.y
ans=-1/2
z:
[1x1sym]f.z
ans=5/6
[x,y,z]=solve(‘x+y+z=1’,…
'
x=2/3
y=-1/2
z=5/6
一阶微分方程
dsolve('
Dx=y'
Dy=x'
x(0)=0'
y(0)=1'
x(t)=sin(t),y(t)=cos(t)
二阶微分方程
D2y=-a^2*y'
Dy(pi/a)=0'
cos(a*x)
求该方程的解
y=dsolve('
D2y+2*Dy+2*y=0'
Dy(0)=0'
exp(-x)*cos(x)+exp(-x)*sin(x)
例17.化简三角函数式sin2x+cos2x
a=maple('
simplify(sin(x)^2+cos(x)^2);
a=
1
单窗口多曲线绘图
例2:
t=0:
pi/100:
2*pi;
y=sin(t);
y1=sin(t+0.25);
y2=sin(t+0.5);
plot(t,y,t,y1,t,y2)
3.单窗口多曲线分图绘图
subplot——子图分割命令
调用格式:
subplot(m,n,p)——按从左至右
从上至下排列
例如66页
多窗口绘图
figure(n)——创建窗口函数,n为窗
口顺序号。
plot(t,y)——自动出现第一个窗口
figure
(2)
plot(t,y1)——在第二窗口绘图figure(3)
plot(t,y2)——在第三窗口绘图
.可任意设置颜色与线型
例4(例2):
plot(t,y,'
r-'
t,y1,'
g:
t,y2,'
b*'
例:
0.1:
10
y1=sin(t);
y2=cos(t);
plot(t,y1,'
r'
b--'
);
x=[1.7*pi;
1.6*pi];
y=[-0.3;
0.8];
s=['
sin(t)'
;
cos(t)'
];
text(x,y,s);
title('
正弦和余弦曲线'
legend('
正弦'
余弦'
xlabel('
时间t'
),ylabel('
正弦、余弦'
grid
axissquare
注意要会解释每句话的意思
✹视角修饰(函数view(az,el))
az----方位角;
el----俯视角
省缺值为:
az=-37.5;
el=30