MATLAB运算基础实验.docx
- 文档编号:24444379
- 上传时间:2023-05-27
- 格式:DOCX
- 页数:18
- 大小:268.99KB
MATLAB运算基础实验.docx
《MATLAB运算基础实验.docx》由会员分享,可在线阅读,更多相关《MATLAB运算基础实验.docx(18页珍藏版)》请在冰豆网上搜索。
MATLAB运算基础实验
兰州交通大学
MATLAB课程设计
姓名:
__________
学号:
__________
专业:
__________
指导老师:
__________
时间:
2014.7.7
实验一MATLAB运算基础
一、实验目的
1、熟悉启动和退出MATLAB的方法。
2、熟悉MATLAB命令窗口的组成。
3、掌握建立矩阵的方法。
4、掌握MATLAB各种表达式的书写规则以及常用函数的使用。
二、实验内容
1.先求下列表达式的值,然后显示MATLAB工作空间的使用情况并保存全部变量。
(1)
(2)
,其中
(3)
提示:
利用冒号表达式生成a向量,求各点的函数值时用点乘运算。
提示:
用逻辑表达式求分段函数值。
解答:
(1)z1=(2*sin(85*pi/180))/(1+exp
(2))
z1=
0.2375
(2)x=[2,1+2i;-0.45,5]
x=
2.00001.0000+2.0000i
-0.45005.0000
z2=1/2*log(1+sqrt(1+x^2))
z2=
0.5738-0.0333i0.7952+0.2117i
0.2869+0.4861i0.9005-0.0073i
(3)a=-3.0:
0.1:
3.0;z3=(exp(0.3.*a)-exp(-0.3.*a))/2.*sin((a+0.3)*pi/180)+log((0.3+a)/2)
z3=
Columns1through7
0.3485+3.1416i0.3070+3.1416i0.2642+3.1416i0.2201+3.1416i0.1743+3.1416i0.1269+3.1416i0.0775+3.1416i
Columns8through14
0.0260+3.1416i-0.0278+3.1416i-0.0842+3.1416i-0.1436+3.1416i-0.2064+3.1416i-0.2728+3.1416i-0.3437+3.1416i
Columns15through21
-0.4195+3.1416i-0.5011+3.1416i-0.5895+3.1416i-0.6862+3.1416i-0.7927+3.1416i-0.9116+3.1416i-1.0461+3.1416i
Columns22through28
-1.2011+3.1416i-1.3842+3.1416i-1.6080+3.1416i-1.8962+3.1416i-2.3021+3.1416i-2.9955+3.1416i-37.0245
Columns29through35
-2.9958-2.3027-1.8971-1.6092-1.3858-1.2030-1.0484
Columns36through42
-0.9142-0.7957-0.6895-0.5932-0.5051-0.4239-0.3485
Columns43through49
-0.2781-0.2120-0.1497-0.0907-0.03480.01860.0696
Columns50through56
0.11840.16530.21050.25410.29620.33700.3766
Columns57through61
0.41520.45260.48920.52490.5599
(4)t=0:
0.5:
2.5;
q1=(t>=0&t<1).*t;
z41=q1.*q1
q2=(t>=1&t<2).*t;
z42=q2.*q2-1
q3=(t>=2&t<3).*t;
z43=q3.*q3-2*t+1
z41=
00.25000000
z42=
-1.0000-1.000001.2500-1.0000-1.0000
z43=
1.00000-1.0000-2.00001.00002.2500
2.已知:
求下列表达式的值:
(1)
和
(其中I为单位矩阵)
(2)
(3)
(4)
(5)
解答:
A=[12,34,-4;34,7,87;3,65,7]
B=[1,3,-1;2,0,3;3,-2,7]
I=eye(3)
A+6*B
ans=
1852-10
467105
215349
A-B+I
ans=
1231-3
32884
0671
A*B
ans=
684462
309-72596
154-5241
A.*B
ans=
121024
680261
9-13049
A^3
ans=
3722623382448604
247370149188600766
78688454142118820
A.^3
ans=
172839304-64
39304343658503
27274625343
A/B
ans=
16.4000-13.60007.6000
35.8000-76.200050.2000
67.0000-134.000068.0000
B\A
ans=
109.4000-131.2000322.8000
-53.000085.0000-171.0000
-61.600089.8000-186.2000
[A,B]
ans=
1234-413-1
34787203
36573-27
[A([1,3],:
);B^2]
ans=
1234-4
3657
451
11019
20-540
3.设有矩阵
(1)求他们的乘积C。
(2)将矩阵C的右下角3X2子矩阵赋给D。
(3)查看MATLAB工作空间的使用情况。
解答:
A=[1,2,3,4,5;6,7,8,9,10;11,12,13,14,15;16,17,18,19,20;21,22,23,24,25]
A=
12345
678910
1112131415
1617181920
2122232425
B=[3,0,16;17,-6,9;0,23,-4;9,7,0;4,13,11]
B=
3016
17-69
023-4
970
41311
C=A*B
C=
9315077
258335237
423520397
588705557
753890717
D=C(3:
5,2:
3)
D=
520397
705557
890717
4.完成下列操作:
(1)求
之间能被21整除的数的个数。
提示:
先利用冒号表达式,再利用find和length函数。
(2)建立一个字符串向量,删除其中的大写字母。
提示:
利用find函数和空矩阵。
解答:
(1)m=100:
999;
n=find(mod(m,21)==0);
length(n)
ans=
43
(2)s='abcdefGHJKLlopq'
g=find(s>='A'&s<='Z');
s(g)=[]
s=abcdefGHJKLlopq
s=
abcdeflopq
实验二选择结构程序设计
一、实验目的
1、掌握建立和执行M文件的方法。
2、掌握利用if语句实现选择结构的方法。
3、掌握利用switch语句实现多分支选择结构的方法。
4、掌握try语句的使用。
二、实验内容
1.输入一个百分制成绩,要求输出成绩等级A、B、C、D、E。
其中90分~100分为A,80分~89分为B,70分~79分为C,60分~69分为D,60分以下为E。
要求:
(1)分别用if语句和switch语句实现。
(2)输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。
解答:
(1)%if语句的实现
g=input('请输入成绩g');
ifg>=90&g<=100
disp('成绩等级:
A');
elseifg>=80&g<=89
disp('成绩等级:
B');
elseifg>=70&g<=79
disp('成绩等级:
C');
elseifg>=60&g<=69
disp('成绩等级:
D');
elseifg<60&g>=0
disp('成绩等级:
E');
elsedisp('请输入合理的成绩!
');
end
运行
请输入成绩g90成绩等级:
A
%switch语句的实现
g1=input('请输入成绩g1');
switch(g1/10)
case{9,10}
disp('成绩等级:
A');
case(8)
disp('成绩等级:
B');
case(7)
disp('成绩等级:
C');
case(6)
disp('成绩等级:
D');
case{0,1,2,3,4,5}
disp('成绩等级:
E');
Otherwisedisp('请输入合理的成绩!
');
end
运行
请输入成绩g180成绩等级:
B
实验三循环结构程序设计
一、实验目的
1.掌握利用for语句实现循环结构的方法。
2.掌握利用while语句实现循环结构的方法。
3.熟悉利用向量运算来代替循环操作的方法。
二、实验内容
1.根据
求的进似值。
当n分别取100、1000、10000时,结果是多少?
要求:
分别用循环结构和向量运算(使用sum函数)来实现。
解答:
(1)%用循环结构实现
n=input('请输入n的值:
');
y=0;
fori=1:
n
y=y+1/i/i;
end
jg1=sqrt(6*y)
(2)%用向量运算实现
n1=input('请输入n1的值:
');
i=1:
n1;
y1=1./i.^2;
jg2=sqrt(6*sum(y1))
运行
请输入n的值:
100请输入n1的值:
100
jg1=166/53jg2=166/53
请输入n的值:
1000请输入n1的值:
1000
jg1=3841/1223jg2=3841/1223
请输入n的值:
10000请输入n1的值:
10000
jg1=2309/735jg2=2309/735
实验四绘图
一、实验目的
1.掌握绘制二维图形的常用函数。
2.掌握绘制三维图形的常用函数。
3.掌握绘制图形的辅助操作。
二、函数内容
1.已知
,
,y3=y1*y2,完成下列操作:
(1)在同一坐标系下用不同的颜色和线型绘制三条曲线。
(2)以子图形式绘制三条曲线。
(3)分别用条形图、阶梯图、杆图和填充图绘制三条曲线。
解答:
(1)源程序
x1=1:
10;
y1=x1.^2;
y2=cos(2.*x1);
y3=y1.*y2;
plot(x1,y1,'b--',x1,y2,'r:
',x1,y3,'m-.')
运行
图2函数y1,y2,y3的曲线图
(2)源程序
subplot(1,3,1);plot(x1,y1);title('y1');
subplot(1,3,2);plot(x1,y2);title('y2');
subplot(1,3,3);plot(x1,y3);title('y3');
运行
图3函数y1,y2,y3的曲线图
(3)源程序
subplot(3,4,1);bar(x1,y1,'m');title('bar(x1,y1,"m")');
subplot(3,4,2);stairs(x1,y1,'g');title('stairs(x1,y1,"g")');
subplot(3,4,3);stem(x1,y1,'r');title('stem(x1,y1,"r")');
subplot(3,4,4);fill(x1,y1,'b');title('fill(x1,y1,"b")');
subplot(3,4,5);bar(x1,y2,'m');title('bar(x1,y2,"m")');
subplot(3,4,6);stairs(x1,y2,'g');title('stairs(x1,y2,"g")');
subplot(3,4,7);stem(x1,y2,'r');title('stem(x1,y2,"r")');
subplot(3,4,8);fill(x1,y2,'b');title('fill(x1,y2,"b")');
subplot(3,4,9);bar(x1,y3,'m');title('bar(x1,y3,"m")');
subplot(3,4,10);stairs(x1,y3,'g');title('stairs(x1,y3,"g")');
subplot(3,4,11);stem(x1,y3,'r');title('stem(x1,y3,"r")');
subplot(3,4,12);fill(x1,y3,'b');title('fill(x1,y3,"b")');
运行
图4函数y1,y2,y3的曲线条形图、阶梯图、杆图和填充图
解答:
(2)[x,y]=meshgrid(-1:
0.1:
2,1:
0.5:
5);
z=(x.^2-2*x).*exp(-x.^2-y.^2-x.*y);
mesh(x,y,z);
实验五符号计算基础
一、实验目的
1、掌握定义符号对象的方法
2、掌握符号表达式的运算法则及符号矩阵运算
3、掌握求符号函数极限及导数的方法
4、掌握求符号函数定积分和不定积分的方法
二、实验内容
1、已知x=6,y=5,利用符号表达式求
提示:
定义符号常数x=sym('6'),y=sym('5')
解答:
>> x=sym('6'),y=sym('5')
x=
6
Y=
5
z=(x+1)/(sqrt(3+x)-sqrt(y))
z =
7/(3-5^(1/2))
2、用符号方法求下列极限或导数
解答:
(1)x=sym('x')
x =
x
>> f=(x*(exp(sin(x))+1)-2*(exp(tan(x))-1))/sin(x).^3
f =
(x*(exp(sin(x))+1)-2*exp(tan(x))+2)/sin(x)^3
>> limit(f)
ans =
-1/2
(2)x=sym('x')
x =
x
>> y=(1-cos(2*x))/x
y =
(1-cos(2*x))/x
>> diff(y,x,1)
ans =
2*sin(2*x)/x-(1-cos(2*x))/x^2
>> diff(y,x,2)
ans =
4*cos(2*x)/x-4*sin(2*x)/x^2+2*(1-cos(2*x))/x^3
>> syms a t x;
>> f=sym('[a^x,t^3;t*cos(x),log(x)]')
f =
[ a^x, t^3] [ t*cos(x), log(x)]
>> diff(f,x,1); >> diff(f,x,1)
ans =
[ a^x*log(a), 0] [ -t*sin(x), 1/x]
>> diff(f,t,2)
ans =
[0,6*t]
[0, 0]
>> diff(f,x)/diff(f,t)
ans =
[ 0, 1/cos(x)*a^x*log(a)]
[ 1/3/t^2/x, -1/cos(x)*t*sin(x)]
3、用符号方法求下列积分
解答:
(1)sym('x')
ans =
x
>> f=1/(1+x^4+x^8)
f =
1/(1+x^4+x^8)
>> int(f,x)
ans =
1/6*3^(1/2)*atan(1/3*(2*x-1)*3^(1/2))+1/6*3^(1/2)*atan(1/3*(1+2*x)*3^(1/2))-1/12*3^(1/2)*log(-x^2+3^(1/2)*x-1)+1/12*3^(1/2)*log(x^2+3^(1/2)*x+1)
(2)syms x
>> f=(x.^2+1)/(x.^4+1)
f =
(x^2+1)/(1+x^4)
>> int(f,x,0,inf)
ans =
1/2*pi*2^(1/2)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 运算 基础 实验