matlab章课后作业.docx
- 文档编号:4586078
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:31
- 大小:509.20KB
matlab章课后作业.docx
《matlab章课后作业.docx》由会员分享,可在线阅读,更多相关《matlab章课后作业.docx(31页珍藏版)》请在冰豆网上搜索。
matlab章课后作业
MATLAB基础教程1~8章作业
Matlab第一章
1.阐述Matlab的功能
Matlab作为一种高级计算软件,是进行算法开发、数据可视化、数据分析以及数值计算的交互式应用开发环境,已被广泛应用于不同领域。
Matlab的基本功能包括:
数学计算功能、图形化显示功能、M语言编程功能、编译功能、图形用户界面开发功能、Simulink建模仿真功能、自动代码生成功能。
Matlab第二章
1.创建double的变量,并进行计算。
(1)a=87,b=190,计算a+b、a-b、a*b。
(2)创建uint8类型的变量,数值与
(1)中相同,进行相同的计算。
>>a=87,b=190
a=
87
b=
190
>>a+b
ans=
277
>>a-b
ans=
-103
>>a*b
ans=
16530
>>c=uint8(87),d=uint8(190)
c=
87
d=
190
>>c+d
ans=
255
>>c-d
ans=
0
>>c*d
ans=
255
2.计算
(1)sin(60)
(2)e^3
(3)cos(3π/4)
>>sind(60)
ans=
0.8660
>>exp(3)
ans=
20.0855
>>cos(3*pi/4)
ans=
-0.7071
3.设u=2,v=3,计算:
(1)
(2)
(3)
>>u=2;
>>v=3;
>>4*u*v/log(v)
ans=
21.8457
>>(exp(u)+v)^2/(v^2-u)
ans=
15.4189
>>sqrt(u-3*v)/(u*v)
ans=
0+0.4410i
4.计算如下表达式:
(1)
(2)
>>(3-5*i)*(4+2*i)
ans=
22.0000-14.0000i
>>sin(2-8*i)
ans=
1.3553e+003+6.2026e+002i
5.判断下面语句的运算结果。
(1)4<20
(2)4<=20
(3)4==20
(4)4~=20
(5)'b'<'B'
>>4<20
ans=
1
>>4<=20
ans=
1
>>4==20
ans=
0
>>4~=20
ans=
1
>>'b'<'B'
ans=
0
6.设a=39,b=58,c=3,d=7判断下面表达式的值。
(1)a>b
(2)a (3)a>b&&b>c (4)a==d (5)a|b>c (6)~~d >>a=39,b=58,c=3,d=7 a= 39 b= 58 c= 3 d= 7 >>a>b ans= 0 >>a ans= 0 >>a>b&&b>c ans= 0 >>a==d ans= 0 >>a|b>c ans= 1 >>~~d ans= 1 7.编写脚本,计算上面第2题中的表达式。 %计算表达式的值并显示 disp('sin(60)='); disp(sind(60)); disp('exp(3)='); disp(exp(3)); disp('cos(3*pi/4)='); disp(cos(3*pi/4)); 8.编写脚本,输出上面第6题中的表达式的值。 %计算表达式的值并显示 a=39; b=58; c=3; d=7; disp('a>b'),disp(a>b); disp('a disp('a>b&&b>c'),disp(a>b&&b>c) disp('a==d'),disp(a==d); disp('a|b>c'),disp(a|b>c); disp('~~d'),disp(~~d); Matlab第三章 1.在命令提示符下输入以下两条命令: >>x=[93063] >>y=mod((sqrt(length(((x+5).*[12345]))*5)),3) 求y值为多少? x= 93063 y= 2 2.在MATLAB中运行以下命令: a=[3,7,2,7,9,3,4,1,6]; b=[7]; a(4)=[]; vec1=a==b; vec2=mod(a,2)==0; c=sum(vec1); vec3=vec1+vec2; d=vec3.*a; vec4=find(a>5); e=a(vec4)+5; vec5=find(a<5); f=vec5.^2;求c、d、e、f的值。 >>c c= 1 >>d d= 07200406 >>e e= 121411 >>f f= 19253649 3.向量操作时Matlab的主要部分,使用给出的向量来做下面的练习. Vec=[4528472642572457432573362533430-65-343] (1)创建一个新的向量vecR,使其成为vec的转置. (2)创建一个新的向量vecB,使其成为vec前半部分与后半部分对换的结果. (3)创建一个新的向量vecS,使其包含vec中所有小于45的元素,且按vec中的顺序排列. (4)创建一个新的向量vec3R,使其从vec中最后一个元素开始,间隔3个元素取一个元素,直到第一个元素为止. (5)创建一个新的向量vecN,使其包含vec中所有等于2或4的元素的索引值. (6)创建一个新的向量vecG,使其包含vec中去掉索引值为奇数且取值为2或4的元素后的所有元素. >>vecR=vec' vecR= 4 5 2 8 4 7 2 64 2 57 2 45 7 43 2 5 7 3 3 6253 3 4 3 0 -65 -34 >>vec1=vec(1: 13) vec1= 4528472642572457 >>vec2=vec(14: 26) vec2= Columns1through8 432573362533 Columns9through13 430-65-34 >>vecB=[vec2vec1] vecB= Columns1through8 432573362533 Columns9through16 430-65-34452 Columns17through24 8472642572 Columns25through26 457 >>small=vec<45 small= Columns1through17 11111110101011111 Columns18through26 110111111 >>vecS=vec(small) vecS= Columns1through17 452847222743257333 Columns18through22 430-65-34 >>vec3R=vec(end: -3: 1) vec3R= Columns1through8 -34362537432644 Column9 5 >>vecN=find(vec==2|vec==4) vecN= 13579111522 >>[value]=vecN(find(mod(vecN,2))) value= 135791115 >>vec(value)=0 vec= Columns1through8 050807064 Columns9through16 05704574305 Columns17through24 73362533430 Columns25through26 -65-34 >>vec(vec==0)=[] vec= Columns1through8 587645745743 Columns9through16 57336253343 Columns17through18 -65-34 >>vecG=vec vecG= Columns1through8 587645745743 Columns9through16 57336253343 Columns17through18 -65-34 4.给定一下3个向量: nums1=[713532121991024] nums2=[5414569204548726132109411] nums3=[441125418477998852315] 编写脚本文件创建相应的3个向量,newNum1、newNum2、newNum3,分别包含以上3个向量中从第一个元素开始且间隔取值的元素。 %取向量索引为奇数的值 clear clc nums1=[713532121991024]; nums2=[5414569204548726132109411]; nums3=[441125418477998852315]; x1=find(mod(find(nums1),2)==1);%向量1 [values1]=nums1(x1); newNums1=values1; disp('nums1='); disp(nums1); disp('newNums1='); disp(newNums1); x2=find(mod(find(nums2),2)==1);%向量2 [values2]=nums2(x2); newNums2=values2; disp('nums2='); disp(nums2); disp('newNums2='); disp(newNums2); x3=find(mod(find(nums3),2)==1);%向量3 [values3]=nums3(x3); newNums3=values3; disp('nums3='); disp(nums3); disp('newNums3='); disp(newNums3); Matlab第四章 1.有如下数据: X 1 1.1 1.2 1.3 1.4 y 1.00000 1.23368 1.55271 1.99372 2.61170 利用本章介绍的几种插值方法对其进行插值,得到每隔0.05的结果。 %4种插值方法 x=[11.11.21.31.4];%x与y的值 y=[1.000001.233681.552711.993722.61170]; length_of_x=length(x); scalar_x=[x (1): 0.05: x(length_of_x)]; length_of_sx=length(scalar_x); fori=1: length_of_sx%定义4种方法 y_nearest(i)=interp1(x,y,scalar_x(i),'nearest'); y_liner(i)=interp1(x,y,scalar_x(i),'liner'); y_spline(i)=interp1(x,y,scalar_x(i),'spline'); y_cubic(i)=interp1(x,y,scalar_x(i),'cubic'); end subplot(2,2,1),plot(x,y,'*'),holdon,plot(scalar_x,y_nearest),title('nearest');%输出 subplot(2,2,2),plot(x,y,'*'),holdon,plot(scalar_x,y_liner),title('linear'); subplot(2,2,3),plot(x,y,'*'),holdon,plot(scalar_x,y_spline),title('spline'); subplot(2,2,4),plot(x,y,'*'),holdon,plot(scalar_x,y_cubic),title('cubic'); 2.2.求下列函数的解,并绘制图形。 (1)y=ex-x5,初始点为x=8. (2)y=xsin(x) >>y=@(x)exp(x)-x^5; >>x=fzero(y,8) x= 12.7132 >>fplot(y,[10,14]); >>holdon >>plot(x,y(x),'r*') >>y=@(x)x*sin(x); >>x=fzero(y,0) x= 0 3.求下列函数的极值。 (1)z=x2-(y-1)2 (2)z=(x-y+1)2 >>z=@(x)x (1)^2-(x (2)-1)^2; >>[x,fvalue]=fminsearch(z,[-1,1]) Exiting: Maximumnumberoffunctionevaluationshasbeenexceeded -increaseMaxFunEvalsoption. Currentfunctionvalue: -29278786696692084000000000000000000000000000000000000000000000000000000000000000000000.000000 x= 1.0e+043* 1.11381.2383 fvalue= -2.9279e+085 >>z=@(x)(x (1)-x (2)+1)^2; >>[x,fvalue]=fminsearch(z,[-1,1]) x= -1.2073-0.2073 fvalue= 1.9045e-022 4.计算下列积分。 (1) (2) >>f=@(x)x+x.^3+x.^5; >>q=quad(f,-1,1) q= 2.2204e-016 >>f=@(x,y)sin(y).*(x+y)./(x.^2+4); >>q=dblquad(f,1,10,1,10) q= 5.5254 Matlab第五章 1.编制一个脚本,查找给定字符串中指定字符出现的次数和位置. %查找给定字符串中指定字符出现的次数和位置 letter='a';%指定字符 string='Ihavealongstring';%给定字符串 places=findstr(string,letter);%位置 times=length(places);%次数 disp('placesare: '); disp(places); disp('timesare: '); disp(times); 2.编写一个脚本,判断输入字符串中每个单词的首字母是否为大写,若不是则将其修改为大写,其他字母为小写. %将每个单词首字母变为大写 str='Ihavealongstring'; disp(str); nlength=length(str); fork=1: nlength if(k==1||isspace(str(k-1)))&&(str(k)<='z'&&str(k)>='a') str(k)=char(double(str(k))-32); end end disp(str); 3.创建2×2单元数组,第1、2个元素为字符串,第三个元素为整型变量,第四个元素为双精度(double)类型,并将其用图形表示. >>A=cell(2,2) A= [][] [][] >>A(1,1)={'string1'}; >>A(1,2)={'string2'}; >>A(2,1)={uint8(100)}; >>A(2,2)={double(60)}; >>cellplot(A) 4.创建一个结构体,用于统计学生的情况,包括学生的姓名、学号、各科成绩等。 然后使用该结构体对一个班级的学生成绩进行管理,如计算总分、平均分、排列名次等. >>student=struct('name',{'Ann','Bob','Cilly'},'number',{1,2,3},'grade',{90,60,85}) student= 1x3structarraywithfields: name number grade >>student (1) ans= name: 'Ann' number: 1 grade: 90 >>student (2) ans= name: 'Bob' number: 2 grade: 60 >>student(3) ans= name: 'Cilly' number: 3 grade: 85 >>total=student (1).grade+student (2).grade+student(3).grade total= 235 >>average=total/3 average= 78.3333 >>[new,index]=sort([student.grade],'descend') new= 908560 index= 132 Matlab第六章 1.假设x=[-3,0,0,2,5,8]且y=[-5,-2,0,3,4,10]。 通过手算得到以下运算的结果,并使用MATLAB检验计算的结果。 (1)z=y<~x (2)z=x&y (3)z=x|y (4).z=xor(x,y) >>x=[-3,0,0,2,5,8] x= -300258 >>y=[-5,-2,0,3,4,10] y= -5-203410 >>z1=y<~x z1= 111000 >>z2=x&y z2= 100111 >>z3=x|y z3= 110111 >>z4=xor(x,y) z4= 010000 2.在MATLAB中使用一个循环确定: 如果用户最初在一个银行帐户中存储$10000,并且在每年的年终再存储$10000(银行每年支付6%的利息),那么账户上要积累$1000000要需要多长时间。 %银行存款计算 a=10000;%本金 b=10000;%每年新增存款 sum=0;%存款总和 i=1; sum=sum+a; whilesum<1000000 i=i+1; sum=sum*(1+0.06)+b; end disp('year=') disp(i) near= 34 3.某个特定的公司生产和销售高尔夫手推车。 每周周末,公司都将那一周所生产的手推车转移到仓库(库存)之中。 卖出的所有手推车都是从库存中提取。 这个过程的一个简单模型为: I(k+1)=P(k)+I(k)-S(k) 其中: P(k)=第k周所生产的手推车数量; I(k)=第k周库存中的手推车数量; S(k)=第k周所卖出的手推车数量; 以下为10周计划中的每周销售额; 周 1 2 3 4 5 6 7 8 9 10 销售额 50 55 60 70 70 75 80 80 90 55 假设每周的产量都基于前一周的销售额,所以有P(k)=S(k-1)。 假设第一周的产量为50辆手推车: 即,P (1)=50。 编写一个MATLAB程序计算: 10周之内每周库存之中的手推车数量或者计算手推车库存数量减少到0为止的时间,并同时绘制图形。 针对以下两种情况运行该程序: (1)初始库存为50辆手推车,所以I (1)=50; (2)初始库存为30辆手推车,所以I (1)=30。 >>s=[50556070707580809055] s= 50556070707580809055 >>fori=2: 1: 10 p(i)=s(i-1); end >>p p= 0505560707075808090 >>l=[50000000000] l= 50000000000 >>forn=2: 1: 10 l(n)=l(n-1)+p(n)-s(n); end >>l l= 50454030302520201045 >>l=[30000000000] l= 30000000000 >>forn=2: 1: 10 l(n)=l(n-1)+p(n)-s(n); end >>l l= 3025201010500-1025 周 1 2 3 4 5 库存量 (1) 50 50 45 40 30 库存量 (2) 30 25 20 20 10 周 6 7 8 9 10 库存量 (1) 30 30 25 20 10 库存量 (2) 10 5 0 0 (<0) Matlab第七章 1.创建符号表达式f(X)=sinx+x。 >>f=sym('sin(x)+x'); 2.计算习题1中表达式在 处的值,并将结果设置为以下5种精度: 小数点之后1位、2位、5位、10位和20位有效数字。 >>digits (2) >>vpa(subs(f,pi/6)) ans= 1.0 >>digits(3)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- matlab 课后 作业