实验一 Matlab语言基础实验.docx
《实验一 Matlab语言基础实验.docx》由会员分享,可在线阅读,更多相关《实验一 Matlab语言基础实验.docx(11页珍藏版)》请在冰豆网上搜索。
实验一Matlab语言基础实验
实验一Matlab语言基础实验
2.实验内容
(2)练习MATLAB命令的基本操作
1)常数矩阵输入
a=[123]%行输入显示
a=[1;2;3]%列输入显示
a’%转置之前的a矩阵并显示
a^2%矩阵的平方送显
a^0.5%矩阵的开方送显
2)作循环命令程序。
%循环相加,从1+2+……+100的和
3)分别执行下列命令:
poly(a)%求以向量为解的方程或方阵的特征多项式。
rank(a)%求一个矩阵的秩。
det(a)%求一个方阵的行列式。
trace(a)%求二维方阵对角线上元素之和。
Inv(a)%求一个方阵的逆矩阵。
eig(a)%求矩阵的特征值和特征向量。
4)练习m文件的基础操作
键入penddemo回车
单击
后观察倒立钟摆的演示。
MATLAB数值运算
1实验目的
(1)学习MATLAB语言的基本矩阵运算;
(2)学习MATLAB语言的点运算;
(3)学习复杂运算;
(1)基本矩阵运算
1)创建数值矩阵。
键入a=【123;456;789】;
a%显示键入矩阵
a(3,2)%显示3行二列的数
a(:
1)%显示第一列内容
t=0:
10;%从0显示到10
u=0:
0.1:
10;%从0显示到10,步距为0.1
a(:
3)=[2;3;4];%将原有矩阵的第三列赋予新值
2)特殊矩阵
a=ones(3,3);%创建3*3的全1矩阵
b=zeros(2,2);%创建2*2的零矩阵
c=eye(4);%主对角线为1的单位矩阵
magic(4);%对角线横竖斜相加之和恒定的矩阵
3)练习矩阵运算
a=[010;001;-6-11-6];%输入矩阵
a^2矩阵乘方运算
矩阵加减运算a1=c*b-a(1:
2,1:
2)
矩阵右除ar=c/a(c*a的逆矩阵)
矩阵左除ar=a\b(b的逆矩阵*a)
4)练习矩阵特征运算
a’%转置行列式
Inv(a)%求一个方阵的逆矩阵。
diag(a)%提取主对角线元素
tril(a)%将原矩阵a变为三角矩阵
poly(a)%求以向量为解的方程或方阵的特征多项式。
rank(a)%求一个矩阵的秩。
det(a)%求一个方阵的行列式。
trace(a)%求二维方阵对角线上元素之和。
eig(a)%求矩阵的特征值和特征向量。
(2)MATLAB语言的点运算
1)练习点乘与点除
a1=[12;34];
a2=0.2*a1;
[a1,a2]%显示a1,a2
[a1.*a2a1./a2]%点乘除运算
.*矩阵相对应元素相乘放入新矩阵
./矩阵相对应元素相除放入新矩阵
2)由点运算完成标量函数运算与作图
正、余弦函数的点运算。
t=0:
2*pi/180:
2*pi;
y1=sin(t);y2=cos(t);
y=y1.*y2;
plot(t,[y’y1’y2’]);
形成的波形如图
复变函数的点运算
w=0.1:
0.1:
2
w=
Columns1through7
0.10000.20000.30000.40000.50000.60000.7000
Columns8through14
0.80000.90001.00001.10001.20001.30001.4000
Columns15through20
1.50001.60001.70001.80001.90002.0000
g1=(1+0.5*w*i)/(1-0.5*w*i)%g1=0.4719+0.7728i
g2=(1+0.5*w*i)./(1-0.5*w*i)%
polt(g2);xlabel(‘realg2(w)’);ylabel(‘imagg2(w)’)
axis(‘square’)
观察波形
(4)多项式运算
1)建立多项式向量
ap=[1331]%ap=1331
b=[-1-2-3];bp=poly(b)
2)练习多项式乘与求根
2)练习多项式运算
三、MATLAB语言的符号运算
1.实验目的
(1)学习MATLAB语言的基本符号运算
(2)学习MATLAB语言的矩阵符号运算
(3)MAPLE函数调用
2.实验内容
(1)基本符号运算
1)符号微分,积分
symst%定义符号变量
f1=sin(2*t);
df1=diff(f1)%对f1求微分
df1=2*cos(2*t)
if1=int(f1)
if1=-1/2*cos(2*t)
2)泰勒级数展开
tf1=taylor=(f1,8)
tf1=2*t-4/3*t^3+4/15*t^5-8/315*t^7
3)符号代数方程求解
symsabcx
f=a*x^2+b*x+c;
ef=solve(f)
ef=1/2/a*(-b+(b^2-4*a_c)^(1/2))
1/2/a*(-b-(b^2-4*a_c)^(1/2))
4)符号微分方程求解
5)积分变换
>>symst
>>f1=exp(-2*t)*sin(5*t)
>>F1=laplace(f1)拉普拉斯变换
F1=
5/((s+2)^2+25)
>>symss
>>F2=1/(s+2)^2
>>f2=ilaplace(F2)反拉普拉斯变换
>>f2=
t*exp(-2*t)
>>symst
>>f1=sin(t)
>>Fz1=ztrans(f1)求f1的z变换
Fz1=
-z*sin
(1)/(2*z*cos
(1)-z^2-1)
>>symsz
>>Fz2=z/(z-2)+z/(z-3)
>>fz2=iztrans(Fz2)求f1的z反变换
fz2=
2^n+3^n
6)计算精度
>>g=sym('[pi/22;3exp
(1)]')创建一个符号矩阵
g=
[pi/2,2]
[3,exp
(1)]
>>g1=vpa(g)将g中所有数据的精度保留至小数点后32位
g1=
[1.570796326794897...,2.]
[3.,2.718281828459045...]
>>digits查看保留到多少位
Digits
=32
>>g1=vpa(g,5)将g中所有数据的精度保留至小数点后5位
g1=
[1.5708,2.]
[3.,2.7183]
(2)符号矩阵运算
1)创建与修改符号矩阵
>>G1=sym('[1/(s+1),s/(s+1)/(s+2);1/(s+1)/(s+2),s/(s+2)]')定义一个符号矩阵
G1=
[1/(s+1),s/(s+1)/(s+2)]
[1/(s+1)/(s+2),s/(s+2)]
>>G2=subs(G1,G1(2,2),'0')将G1矩阵的第二行第二个数改成0赋到G2中
G2=
[1/(s+1),s/(s+1)/(s+2)]
[1/(s+1)/(s+2),0]
>>G3=G1(1,1)将G1里的第一行第一个数放到G3中
G3=
1/(s+1)
2)符号线性代数
>>a=[1234];
>>inva
ans=
0.0103
>>deta
ans=
97
>>eiga
ans=
97
>>transposea
ans=
a
3)常规符号运算
>>symss
>>d1=1/(s+1);d2=1/(s+2);d=d1*d2
d=
1/(s+1)/(s+2)
>>ad=sym('[s+1s;0s+2]');G=d*ad
G=
[1/(s+2),s/(s+1)/(s+2)]
[0,1/(s+1)]
>>n1=[12345];n2=[123];
>>p1=poly2sym(n1);p2=poly2sym(n2);
>>p=p1+p2
p=
x^4+2*x^3+4*x^2+6*x+8
>>pn=sym2poly(p)
pn=
12468
>>a=[01;-2-3];
>>gcha=poly2sym(poly(eig(a)))
gcha=
x^2+3*x+2
>>syms
ans=
s
>>mg=s*eye
(2)-a
mg=
[s,-1]
[2,s+3]
>>geig=transpose(eig(mg))
geig=
[s+1,s+2]
>>gdet=det(mg)
gdet=
s^2+3*s+2
>>groot=transpose(solve(gdet))
groot=
[-2,-1]
>>G=inv(mg)
G=
[(s+3)/(s^2+3*s+2),1/(s^2+3*s+2)]
[-2/(s^2+3*s+2),s/(s^2+3*s+2)]
>>g11=ilaplace(G(1,1));
>>g12=ilaplace(G(1,2));
>>g21=ilaplace(G(2,1));
>>g22=ilaplace(G(2,2));
>>g=[g11g12;g21g22]
g=
[-exp(-2*t)+2*exp(-t),exp(-t)-exp(-2*t)]
[-2*exp(-t)+2*exp(-2*t),2*exp(-2*t)-exp(-t)]