资源描述
实 验 报 告
(2010学年第一学期)
课 程 名 称 Matlab
教 学 院 (部) 工学院
任课教师及职称 许芹
专 业、班 级 电子信息工程
学 号 1104080129
姓 名 赵超
实验一 Matlab基础入门
四:实例练习
1, 设两个复数a=2+3i,b=4+5i,计算a+b,a-b,a*b,a/b
function one_1(a,b)
a1=a+b
a2=a—b
a3=a*b
a4=a/b
>> a=complex(2,3);
>> b=complex(4,5);
>> one_1(a,b)
a1 = 6.0000 + 8.0000i
a2 = -2.0000 - 2.0000i
a3 = —7。0000 +22。0000i
a4 = 0.5610 + 0。0488i
2,计算下列函数的结果,其中x=—3.5〬,y=8〬,
F=
function one_2(x,y)
x=x*pi/180
y=y*pi/180
f=(sin(abs(x)+abs(y)))/(sqrt(cos(abs(x+y))))
〉〉 one_2(—3.5,8)
x = —0。0611
y = 0.1396
f = 0。1997
3。我国人口按2000年第五次人口普查的结果为12。9533亿,如果人口增长率为1.07%,求公元2010年的人口数。
function one_3(n)
a=12.9533
y=a*(1+0。00107)^(n—2000)
〉〉one_3(2010)
a = 12。9533
y = 13.0926
4,求解ax2+bx+c=0方程的根,其中a=1,b=2,c=3
function one_4(a,b,c)
p1=[a,b,c]
roots(p1)
〉> one_4(1,2,3)
p1 = 1 2 3
ans =
-1。0000 + 1.4142i
-1。0000 - 1.4142i
5,已知三角形三边a=8.5,b=14。6。c=18.4,求三角形面积
function one_5(a,b,c)
s=(a+b+c)/2;
area=sqrt(s*(s-a)*(s—b)*(s-c))
〉> one_5(8。5,14。6,18.4)
area = 60.6106
实验二 Matlab 符号运算
2, 微积分
1) 求极限: , ,
function two_1
syms x
limit(1/x,x,0)
limit(1/x,x,0,’left’)
limit(1/x,x,0,'right’)
〉> two_1
ans =NaN
ans =—Inf
ans =Inf
2) 微分:f(x)=ax2+bx+c 分别以x,a作为自变量求f(x)的一次和二次微分
function two_2
syms a b c x
f=a*x^2+b*x+c
diff(f,x,1)
diff(f,x,2)
diff(f,a,1)
diff(f,a,2)
〉> two_2
f =a*x^2+b*x+c
ans =2*a*x+b
ans =2*a
ans =x^2
ans =0
3)积分:f(x)=ax2+bx+c,分别以x,a作为自变量求f(x)的积分
function two_3
syms a b c x
f=a*x^2+b*x+c
int(f,x)
int(f,a)
〉> two_3
f =a*x^2+b*x+c
ans =1/3*a*x^3+1/2*b*x^2+c*x
ans =1/2*a^2*x^2+b*x*a+c*a
4)级数:求级数 求sin(x)的前十项展开式
function two_4(n)
syms x
y=1/x;
symsum(y,x,1,n)
y1=sin(x);
taylor(y1,10,1)
>> two_4(100)
Ans=14466636279520351160221518043104131447711/2788815009188499086581352357412492142272
ans =sin(1)+cos(1)*(x-1)-1/2*sin(1)*(x—1)^2—1/6*cos(1)*(x—1)^3+1/24*sin(1)*(x-1)^4+1/120*cos(1)*(x—1)^5—1/720*sin(1)*(x-1)^6-1/5040*cos(1)*(x-1)^7+1/40320*sin(1)*(x-1)^8+1/362880*cos(1)*(x-1)^9
3) 方程求解
(1)代数方程:
分别以x,a为变量求方程f(x)=ax2+bx+c 的根
求方程的解:
function two_5
syms a b c x y z
solve('a*x^2+b*x+c=0','x')
solve(’a*x^2+b*x+c=0’,’a')
a1=[1 1 1 ;1 -1 1 ;2 -1 —1 ];
b=[10 0 —4]';
inv(a1)*b
>〉 two_5
ans =
1/2/a*(—b+(b^2—4*c*a)^(1/2))
1/2/a*(-b—(b^2—4*c*a)^(1/2))
ans =—(b*x+c)/x^2
ans =
2.0000
5。0000
3.0000
(2)常微分方程
求微分方程y’=5,初始条件y(0)=1的解
求二阶微分方程y’'=1+y’,初始条件Dy(0)=0的解
function two_6
syms y
dsolve('Dy=5’,’y(0)=1')
dsolve('D2y=1+Dy’,’Dy(0)=0')
>〉 two_6
ans =5*t+1
ans =exp(t)—t+C2
(4) 符号积分变换
以f(x)=a*x2+bx+c 为例,求下列变换
傅里叶变换及其反变换
正变换:fourier(f,u,v)
反变换:ifourier(f,u,v)
拉普拉斯变换及其反变换
正变换:laplace(f,w,z)
反变换:ilaplace(f,w,z)
Z变换及其反变换
正变换:ztrans(f,w,z)
反变换:iztrans(f,w,z)
clear
function two_7
syms a b c x u v w z
f=a*x^2+b*x+c;
f1=fourier(f,u,v)
f2=ifourier(f1,u,v)
f3=laplace(f,w,z)
f4=ilaplace(f3,w,z)
f5=ztrans(f,w,z)
f6=ztrans(f5,w,z)
〉> two_7
f1 =2*(a*x^2+b*x+c)*pi*dirac(v)
f2 =2*(a*x^2+b*x+c)*pi*dirac(v)^2
f3 =(a*x^2+b*x+c)/z
f4 =(a*x^2+b*x+c)/z*dirac(z)
f5=(a*x^2+b*x+c)*z/(z—1)
f6 =(a*x^2+b*x+c)*z^2/(z—1)^2
三.实例练习
1) 求极限)x ,
function two_8
syms x a
f1=((x+a)/(x—a))^x;
f2=(tan(x))^(1/log(x));
limit(f1,x,inf)
limit(f2,x,0,’right’)
>〉 two_8
ans =exp(2*a)
ans =exp(1)
2) 已知f(t)=,求f’(t)
function two_9
syms x t
f1=(1+1/x)^(2*t*x);
f=limit(f1,x,inf)
f2=diff(f,t,1)
〉> two_9
f =exp(2*t)
f2 =2*exp(2*t
3) 求积分:dx
function two_10
syms x
f=sqrt(x)/(1+x)^2;
int(f,x,0,inf)
〉> two_10
ans =1/2*pi
4) 求一阶微分方程y’+ytanx=cosx的通解
function two_11
syms x
dsolve(’Dy+y*tan(x)=cos(x)')
〉〉 two_11
ans =exp(—tan(x)*t)*cos(x)^2/sin(x)*exp(sin(x)/cos(x)*t)+exp(-tan(x)*t)*C1
实验三 Matlab 数值运算
1 矩阵的构造
利用不同的方法构造一下矩阵 A,B
A=[1,2,3,4;5,6,7,8;9,10,11,12;13,14,15,16]
B=[1,5,9,13;2,6,19,14;3,7,11,15;4,8,12,16]
2矩阵的运算
1) 加减运算:计算C=A+B,D=A—B,E=A+3
2) 乘法运算:计算F=A*B ,G=A*3
3) 除法运算:计算A/B,A\B
4) 乘方运算:计算A的自乘P次,其中P=1,2,3
5) 矩阵转置:A‘
6) 求逆矩阵:H=【1 2 0;2 5 —1;4 10 —1】,x=inv(H)
7) 求特征值:eig(H)
8) 求特征多项式:
9) 求线性方程组
function three_1
A=[1,2,3,4;5,6,7,8;9,10,11,12;13,14,15,16];
B=[1,5,9,13;2,6,19,14;3,7,11,15;4,8,12,16];
C=A+B
D=A—B
E=A+3
F=A*B
G=A*3
Y=A^2
A’
H=[1 2 0; 2 5 -1; 4 10 —1 ];
eig(H)
poly(H)
det(H)
a=[2 1 -3;3 -2 2; 5 —3 —1];
b=[5 5 16]';
x=inv(a)*b
>> three_1
C =
2 7 12 17
7 12 26 22
12 17 22 27
17 22 27 32
D =
0 -3 —6 -9
3 0 -12 —6
6 3 0 -3
9 6 3 0
E =
4 5 6 7
8 9 10 11
12 13 14 15
16 17 18 19
F =
30 70 128 150
70 174 332 382
110 278 536 614
150 382 740 846
G =
3 6 9 12
15 18 21 24
27 30 33 36
39 42 45 48
Y =
90 100 110 120
202 228 254 280
314 356 398 440
426 484 542 600
ans =
1 5 9 13
2 6 10 14
3 7 11 15
4 8 12 16
ans =
3。7321
0。2679
1.0000
ans = 1。0000 -5.0000 5.0000 -1.0000
ans = 1
x =
1.0000
-3。0000
—2。0000
4多项式
2) 多项式四则运算:求一下两个多项式的和,积,商
a(x)=5x4+4x3+3x2+2x+1 b(x)=3x2+1
function three_2
a=[5 4 3 2 1];
b=[3 0 1 ];
B=conv(a,b)
[p,r]=deconv(a,b)
〉〉 three_2
B =15 12 14 10 6 2 1
p = 1.6667 1.3333 0.4444
r = 0 0 0 0。6667 0。5556
3)多项式微分:求多项式p(x)=2x4—6x3+3x2+7
4)求根:求p(x)=2x4—6x3+3x2+7
5)求值:当X=1时,求多项式p(x)=2x4-6x3+3x2+7的值
function three_3
p=[2 —6 3 0 7];
p1=polyder(p)
p2=roots(p)
p3=polyval(p,1)
>〉 three_3
p1 = 8 -18 6 0
p2 =
1.9322 + 0。4714i
1.9322 - 0.4714i
—0.4322 + 0。8355i
—0.4322 - 0。8355i
p3 =6
三 实例练习
1) 设矩阵A和B满足AB=A+2B,已知A=[4,2,3;1,1,0;—1,2,3] 求B
2) 将表达式(x-4)(x+5)(x2—6x+9)展开为多项式,并求其对应的一元N次方程的根
3) 已知一元四次方程所对应的四个根为—5 4 3 3 ,求这个方程所对应的表达式原型
function three_4
A=[4 2 3;1 1 0;-1 2 3 ];
B=inv(A—2)*A
p1=[1 -4];
p2=[1 5];
p3=[1 —6 9];
p=conv(p1,p2);
p=conv(p,p3)
r=roots(p)
p4=poly([-5 4 3 3 ])
>> three_4
B =
1。0000 0。0000 0。0000
—6.0000 —5。0000 -6。0000
2。0000 2。0000 3.0000
p = 1 -5 —17 129 —180
r =
-5.0000
4。0000
3。0000
3。0000
p4 = 1 —5 -17 129 -180
实验四 Matlab 图形绘制
绘出(-3,6)区间上曲线的波形
Y=f(x)=
〉> x=linspace(-3,100,0);
y=x;
plot(x,y)
x=linspace(—3。6,0,100);
y=x;
plot(x,y)
hold on
x=linspace(0,pi,100);
y=sin(x.*2);
plot(x,y)
hold on
x=linspace(pi,6,100);
y=(x—pi)。^2;
plot(x,y)
方法二:
function four_1_1()
n=1;
for x=-3。6:0.1:6;
if x<=0
y(n)=x
elseif (0<x)&(x<pi)
y(n)=sin(2*x)
else
y(n)=(x—pi).^2
end
n=n+1;
end
x=-3。6:0。1:6;
plot(x,y)
title('y=x的图像')
xlabel('x');
ylabel(’y’);
2 用MATLAB语言绘出[—2pi,2pi]区间内sinx cosx 曲线,数据点间隔0。1弧度。要求分别用上下两个子图分别绘制两个图形,sin x 用红色、实线cosx用蓝色、虚线及横坐标进行标注
function four_2()
x=-2*pi:0.1:2*pi;
subplot(2,1,1)
y1=sin(x);
plot(x,y1,'r’)
title('y=sinx的图像’)
xlabel(’x’)
ylabel(’y’)
subplot(2,1,2)
y2=cos(x);
plot(x,y2)
title('y=cosx的图像')
xlabel(’x')
ylabel(’y’)
实验五 Matlab 语言程序设计
三 实例练习
1 求1~100的和
function y=five1(n)
y=0;
for m=1:n
y=y+m;
end
y=y
〉〉 five1(100)
y = 5050
ans= 5050
2) 求N的阶乘
function y=five2(n)
y=1;
for m=1:n
y=y*m;
end
y=y
〉> five2(10)
y = 3628800
ans = 3628800
2)给出学生百分制成绩要求转成五级制
function y=five3(n)
a=fix(n/10)
switch a
case {9,10}
y='优’
case 8
y=’良'
case 7
y='中'
case 6
y=’及格'
otherwise
y='不及格’
end
实验六月SUMULINK 系统仿真
假定从实际自然界(力学、电学、生态学)或社会中,抽象出初态状态为0的二阶微分方程
X’’+0.2x’+0。4x=0.2U(t),
U(t)是单位阶跃函数
展开阅读全文