matlab实验报告1.docx
《matlab实验报告1.docx》由会员分享,可在线阅读,更多相关《matlab实验报告1.docx(13页珍藏版)》请在冰豆网上搜索。
matlab实验报告1
实验报告
实验二、MATLAB的数值运算和程序
课程名称:
MATLAB应用技术专业班级:
通信1422
学生学号:
1430119231学生姓名:
周妍智
所属院部:
电子信息工程系指导教师:
徐树梅
2015——2016学年第二学期
实验三、MATLAB的数值运算和程序
实验项目名称:
MATLAB的数值运算和程序实验学时:
16
学生姓名:
周妍智实验地点:
微机11
实验日期:
2016.4.17实验成绩:
批改教师:
徐树梅批改时间:
一、实验目的和要求
1)掌握基本的矩阵运算及常用的函数。
2)掌握MATLAB函数的编写及调试方法。
3)掌握MATLAB常用的数值运算函数。
二、实验仪器和设备
计算机一台
三、实验过程
1.一维数组在命令窗口执行下面指令,观察输出结果,体味数组创建和寻访方法,%号后面的为注释,不用输入。
rand('state',0)%把均匀分布伪随机发生器置为0状态
x=rand(1,5)%产生(1*5)的均布随机数组
x(3)%寻访数组x的第三个元素。
x([125])%寻访数组x的第一、二、五个元素组成的子数组。
x(1:
3)%寻访前三个元素组成的子数组
x(3:
end)%寻访除前2个元素外的全部其他元素。
end是最后一个元素的下标。
x(3:
-1:
1)%由前三个元素倒排构成的子数组
x(find(x>0.5))%由大于0.5的元素构成的子数组
x([12344321])%对元素可以重复寻访,使所得数组长度允许大于原数组。
x(3)=0%把上例中的第三个元素重新赋值为0。
x([14])=[11]%把当前x数组的第一、四个元素都赋值为1。
x[3]=[]%空数组的赋值操作
运行结果:
x=
0.95010.23110.60680.48600.8913
ans=
0.6068
ans=
0.95010.23110.8913
ans=
0.95010.23110.6068
ans=
0.60680.48600.8913
ans=
0.60680.23110.9501
ans=
0.95010.60680.8913
ans=
0.95010.23110.60680.48600.48600.60680.23110.9501
x=
0.95010.231100.48600.8913
x=
1.00000.231101.00000.8913
x[3]=[]
↑
Error:
Unbalancedorunexpectedparenthesisorbracket.
2.在命令窗口执行下面指令,观察输出结果
a=2.7358;b=33/79;%这两条指令分别给变量a,b赋值。
C=[1,2*a+i*b,b*sqrt(a);sin(pi/4),a+5*b,3.5+i]%这指令用于创建二维组C
M_r=[1,2,3;4,5,6],M_i=[11,12,13;14,15,16]%创建复数数组的另一种方法
CN=M_r+i*M_i%由实部、虚部数组构成复数数组
运行结果:
C=
1.0000+0.0000i5.4716+0.4177i0.6909+0.0000i
0.7071+0.0000i4.8244+0.0000i3.5000+1.0000i
M_r=
123
456
M_i=
111213
141516
CN=
1.0000+11.0000i2.0000+12.0000i3.0000+13.0000i
4.0000+14.0000i5.0000+15.0000i6.0000+16.0000i
3.记录下面题目的程序和运行后的结果。
1
下列运算是否合法,为什么?
如合法,结果是多少?
(1)result1=a'=【14;25;36】
(2)result2=a*b不合法
(3)result3=a+b=【362;5811】
(4)result4=b*d=【312222;404913】
(5)result5=[b;c']*d=【312222;404913;-5-87】
(6)result6=a.*b=【28-3;41530】
(7)result7=a./b=【0.50000.5000-3.0000;4.0001.6671.2000】
(8)result8=a.*c不合法
(9)result9=a.\b=【2.00002.0000-0.3333;0.25000.60000.8333】
(10)result10=a.^2=【149;162536】
(11)result11=a^2不合法
(12)result11=2.^a=【248;163264】
4、用MATLAB求下面的的方程组。
(1)
输出程序如下:
a=[721-2;9153-2;-2-2115;13213];
b=[4;7;-1;0];
x=a\b
输出结果为x=
0.4979
0.1445
0.0629
-0.0813
5.详读并运行下面的circle.m函数文件。
体会M函数文件的编写结构及方法。
%后面的内容称为注释行,不被执行,起注释说明作用。
6、编写一个函数,计算下面函数的值,给出标量x的值,调用该函数后,返回y的值。
function[y]=myfun1(x)
选择一些数据测试你编写的函数。
ifx<=0
y=sin(x);
elseifx>0&x<=3
y=x;
elsey=-x+6;
end
7、编写一个函数求向量x中元素的平均值、最大值、最小值、均方根值。
function[m_x,max_x,min_x,rms_x]=myfun2(x)
方均根值(RootMeanSquare)的计算公式为:
用下面数据测试你写的函数:
(1)x=sin(0:
0.01:
6*pi)
(2)x=rand(1,200),得到的x为200个(0,1)之间均匀分布的随机数。
function[m_x,max_x,min_x,rms_x]=myfun2(x)
n=length(x);
m_x=sum(x)/n;
max_x=x
(1);
min_x=x
(1);
fori=2:
n
ifmax_xmax_x=x(i);
end
ifmin_x>x(i)
min_x=x(i);
end
end
y=0;
fori=1:
n
y=y+x(i).^2;
rms_x=sqrt(y/n);
end
m_x;
max_x;
min_x;
rms_x;
8.求编函数实现Fibonacci数列
(1)显示各项
(2)求各项之和
程序如下:
functiony=myfibonacci(x)
ifx==1
y=1;
return
elseifx==2
y=1;
return
end
y=myfibonacci(x-1)+myfibonacci(x-2);
end
9、求代数方程
的5个根,并将其用星号(*)标记在复平面图上。
(用roots和plot函数)。
输出程序:
plot(x,y)
p=[3,4,7,2,9,12];
r=roots(p)
r=
-0.8612+1.4377i
-0.8612-1.4377i
0.6737+1.0159i
0.6737-1.0159i
-0.9583+0.0000i
plot(r,'*b')
10、求代数方程
的5个根,并将其用星号(*)标记在复平面图上。
(用roots和plot函数)。
输出程序如下:
p=[1,0,0,0,0,-1];
r=roots(p)
r=
-0.8090+0.5878i
-0.8090-0.5878i
0.3090+0.9511i
0.3090-0.9511i
1.0000+0.0000i
plot(r,'*b')
11、因式分解:
程序如下:
symss
expand((s^3+5*s.^2+9*s+7)/((s+1)*(s+2)))
ans=
(9*s)/(s^2+3*s+2)+7/(s^2+3*s+2)+(5*s^2)/(s^2+3*s+2)+s^3/(s^2+3*s+2)
12、因式分解:
symsjw
>>expand(((jw)^3+5*(jw).^2+9*(jw)+7)/((jw+1)*(jw+2)))
ans=
(9*jw)/(jw^2+3*jw+2)+7/(jw^2+3*jw+2)+(5*jw^2)/(jw^2+3*jw+2)+jw^3/(jw^2+3*jw+2)
13.求方程
的解析解和数值解,并进行比较
14.分别用ode45和ode15s求解Van-del-Pol方程
的数值解,并进行比较.
-
四、实验结果与分析