学生实验报告
课程名称 MATLAB程序设计 实验日期 12 年 3 月 14 日
实验指导教师签名 年 月 日
第二篇:实验二 MATLAB数值数组及其运算实验报告
实验二 MATLAB数值数组及其运算
班级:电子信息工程2班 学号:1004101049 姓名:王率率
实验目的
1.掌握数值数组的创建和寻访方法;
2.理解数组运算和矩阵运算的含义;
3.熟悉标准数组生成函数和数组操作函数的运用;
4.熟悉两类特殊数组的应用;
5.了解关系运算和逻辑运算及应用。
内容步骤
在计算机上完成以下各题并进行结果验证,并按各题要求完成实验报告。
1. 用2种方法生成行向量[3 5 7 9 11 13 15 17 19],并将其赋值给变量C。写出其命令。
c=[3 5 7 9 11 13 15 17 19] %方法1
c=linspace(3,19,9) %方法2
c=[3:2:19] %方法3
2. 输入A= [2 5 6; 7 1 5; 3 1 5],分别使用全下标和单下标取出元素“7”。写出其命令。
A=[2 5 6;7 1 5;3 1 5]
A(2,1) %全下标
A(2) %单下标
3. 求矩阵[1 3;2 4]的转置矩阵、逆矩阵、矩阵的秩、矩阵的行列式值、矩阵的特征值和特征向量。分别写出其命令和结果。
A=[1 3;2 4]
B=A' %转置矩阵
B1=inv(A) %逆矩阵
C=rank(A) %矩阵的秩
C1=det(A) %矩阵的行列式值
[V,D]=eig(A) %特征值和特征向量
运行结果:
A = 1 3
2 4
B = 1 2
3 4
B1 =-2.0000 1.5000
1.0000 -0.5000
C =2
C1=-2
V =-0.9094 -0.5658
0.4160 -0.8246
D =-0.3723 0
0 5.3723
4.输入A= [2 5 6;7 1 5;3 1 5],B=[2 2 2;1 1 1; 3 3 3],在命令窗口中执行下列表达式,掌握其含义,并将运行结果写入实验报告:
A(2, 3) A(:,2) A(3,:) A(:,1:2:3) A(:,3).*B(:,2) A(:,3)*B(2,:) A*B A.*B A^2 A.^2 B/A B./A
运行结果依次为:B=[2 2 2;1 1 1; 3 3 3]
ans = 5
ans = 5
1
1
ans = 3 1 5
ans = 2 6
7 5
3 5
ans = 12
5
15
ans = 6 6 6
5 5 5
5 5 5
ans = 27 27 27
30 30 30
22 22 22
ans = 4 10 12
7 1 5
9 3 15
ans = 57 21 67
36 41 72
28 21 48
ans = 4 25 36
49 1 25
9 1 25
ans = 0.4211 0.3684 -0.4737
0.2105 0.1842 -0.2368
0.6316 0.5526 -0.7105
ans = 1.0000 0.4000 0.3333
0.1429 1.0000 0.2000
1.0000 3.0000 0.6000
5.用MATLAB求方程组的解,将命令和运行结果写入实验报告。
A=[2 -3 0;4 -5 1;2 0 4]
B=[8 15 10]
X=inv(A)*B %逆阵法
X=A\B %左除法
运行结果:
A = 2 -3 0
4 -5 1
2 0 4
B = 8
15
10
X =-5.0000
-6.0000
5.0000
X =-5.0000
-6.0000
5.0000
6.先建立5×5服从正态分布的随机矩阵A,然后将A的第1行元素乘以1,第2行乘以2,…,第5行乘以5。将命令写入实验报告。
randn('state',0);
a=randn(5,5)
b=diag(1:5)
b*a
运行结果:
a =-0.4326 1.1909 -0.1867 0.1139 0.2944
-1.6656 1.1892 0.7258 1.0668 -1.3362
0.1253 -0.0376 -0.5883 0.0593 0.7143
0.2877 0.3273 2.1832 -0.0956 1.6236
-1.1465 0.1746 -0.1364 -0.8323 -0.6918
b = 1 0 0 0 0
0 2 0 0 0
0 0 3 0 0
0 0 0 4 0
0 0 0 0 5
ans =-0.4326 1.1909 -0.1867 0.1139 0.2944
-3.3312 2.3783 1.4516 2.1335 -2.6724
0.3760 -0.1129 -1.7649 0.1778 2.1430
1.1507 1.3092 8.7327 -0.3826 6.4942
-5.7324 0.8732 -0.6820 -4.1617 -3.4589
7.p76第5题。
student(1).class='电子技术'
student(1).name='无敌'
student(1).gender='男'
student(1).number='200801001'
student(1).course.english='75'
student(1).course.math='85'
student(1).course.computer='67'
student(2).class='电子技术'
student(2).name='王思远'
student(2).gender='男'
student(2).number='200801002'
student(2).course.english='99'
student(2).course.math='78'
student(2).course.computer='0'
student(3).class='通信工程'
student(3).name='李蕾'
student(3).gender='女'
student(3).number='200802001'
student(3).course.english='80'
student(3).course.math='72'
student(3).course.computer='53'
student(4).class='通信工程'
student(4).name='王伟'
student(4).gender='男'
student(4).number='200802002'
student(4).course.english='97'
student(4).course.math='82'
student(4).course.computer='62'
8. 求一元非线性方程的根(p98第3题)。将命令和运行结果写入实验报告。
x=[-10:0.1:10];
y=x-sin(x)./x;
plot(x,y)
hold on
grid on
line([-10 10],[0 0]);
xlabel('x');ylabel('y(x)');
[xx,yy]=ginput(2)
y=inline('x-sin(x)./x','x');
[x1,y1]=fzero(y,xx(1))
[x2,y2]=fzero(y,xx(2))
运行结果:
xx =0.4378
1.2673
yy =-0.0950
-0.0950
x1 =0.8767
x2 =0.8767
y2 =-2.2204e-016
9. 求f(x)=3x2-5x+1极小值(p98第4题)。将命令和运行结果写入实验报告。
x=-10:0.1:10;
f=3*x.^2-5*x+1;
plot(x,f);
[xx,ff]=ginput(1)
function f=myfun1(x)%编写函数文件
f=3*x.^2-5*x+1;
[x,fval]=fminbnd(@myfun1,0,2)
运行结果:
xx = 0.8986
ff =-0.6579
x =0.8333
fval =-1.0833
10. 求积分(p98第5题)。将命令写入实验报告。
>>Q = dblquad(@(x, y) (x.*cos(x+y.^2)), pi, 2*pi,0,pi)
function z = integrnd(x,y) %建立一个函数文件inegrnd.m
z =x.*cos(x+y.^2);
>>Q = dblquad(@integrnd, pi,2*pi,0,pi)
>>fun=inline('x.*cos(x+y.^2)')
fun =
Inline function:
fun(x,y) = x.*cos(x+y.^2)
>>Q = dblquad(fun, pi,2*pi,0,pi)
Q = 8.4135
11. 求常微分方程的数值解(p98第7题)。将命令写入实验报告。
输入命令
S=dsolve('(x-1)*D2y+2*Dy+y=0','y(0)=1,Dy(0)=-1')
S =
-1/2*(-2-(-x+2)^(1/2)+x)/(-x+2)^(1/2)*exp((-1+(-x+2)^(1/2))/(x-1)*t)+1/2*(-2+(-x+2)^(1/2)+x)/(-x+2)^(1/2)*exp(-(1+(-x+2)^(1/2))/(x-1)*t)