matlab1-8章课后作业_第1页
matlab1-8章课后作业_第2页
matlab1-8章课后作业_第3页
matlab1-8章课后作业_第4页
matlab1-8章课后作业_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 MATLAB基础教程 18章作业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=190a = 87b

2、 = 190>> a+bans = 277>> a-bans = -103>> a*bans = 16530>> c=uint8(87), d=uint8(190)c = 87d = 190>> c+dans = 255>> c-dans = 0>> c*dans = 2552.计算(1)sin(60) (2)e3(3)cos(3/4)>> sind(60)ans = 0.8660>> exp(3)ans = 20.0855>> cos(3*pi/4)ans = -0.707

3、13.设u=2,v=3,计算:(1) (2) (3) >> u=2;>> v=3;>> 4*u*v/log(v)ans = 21.8457>> (exp(u)+v)2/(v2-u)ans = 15.4189>> sqrt(u-3*v)/(u*v)ans = 0 + 0.4410i4.计算如下表达式:(1) (2) >> (3-5*i)*(4+2*i)ans = 22.0000 -14.0000i>> sin(2-8*i)ans = 1.3553e+003 +6.2026e+002i5.判断下面语句的运算结果。(

4、1) 4 < 20(2) 4 <= 20(3) 4 = 20(4) 4 = 20(5) 'b'<'B'>> 4<20ans = 1>> 4<=20ans = 1>> 4=20ans = 0>> 4=20ans = 1>> 'b'<'B'ans = 06.设a=39,b=58,c=3,d=7判断下面表达式的值。(1)a>b(2)a<c(3)a>b&&b>c(4)a=d(5)a|b>c(6)d&

5、gt;> a=39,b=58,c=3,d=7a = 39b = 58c = 3d = 7>> a>bans = 0>> a<cans = 0>> a>b&&b>cans = 0>> a=dans = 0>> a|b>cans = 1>> dans = 17.编写脚本,计算上面第2题中的表达式。%计算表达式的值并显示disp('sin(60)=');disp(sind(60);disp('exp(3)=');disp(exp(3);disp(

6、'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<c'),disp(a<c);disp('a>b&&b>c'),disp(a>b&&b>c)disp('a=d'),disp(a=d);disp('a|b>c'),disp(a|b>c)

7、;disp('d'),disp(d);Matlab第三章1.在命令提示符下输入以下两条命令:>> x = 9 3 0 6 3>> y = mod(sqrt(length(x+5).*1 2 3 4 5)*5),3)求y值为多少?x = 9 3 0 6 3y = 22.在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 &

8、gt; 5);e = a(vec4) + 5;vec5 = find(a < 5);f = vec5.2;求c、d、e、f的值。>> cc = 1>> dd = 0 7 2 0 0 4 0 6>> ee = 12 14 11>> ff = 1 9 25 36 493.向量操作时Matlab的主要部分,使用给出的向量来做下面的练习.Vec=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 -343(1)创建一个新的向量vecR,使其成为vec的转置.(2)创建一个新的向量ve

9、cB,使其成为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 -

10、65 -34>> vec1=vec(1:13)vec1 = 4 5 2 8 4 7 2 64 2 57 2 45 7>> vec2=vec(14:26)vec2 = Columns 1 through 8 43 2 5 7 3 3 6253 3 Columns 9 through 13 4 3 0 -65 -34>> vecB=vec2 vec1vecB = Columns 1 through 8 43 2 5 7 3 3 6253 3 Columns 9 through 16 4 3 0 -65 -34 4 5 2 Columns 17 through 2

11、4 8 4 7 2 64 2 57 2 Columns 25 through 26 45 7>> small=vec<45small = Columns 1 through 17 1 1 1 1 1 1 1 0 1 0 1 0 1 1 1 1 1 Columns 18 through 26 1 1 0 1 1 1 1 1 1>> vecS=vec(small)vecS = Columns 1 through 17 4 5 2 8 4 7 2 2 2 7 43 2 5 7 3 3 3 Columns 18 through 22 4 3 0 -65 -34>&g

12、t; vec3R=vec(end:-3:1)vec3R = Columns 1 through 8 -34 3 6253 7 43 2 64 4 Column 9 5>> vecN=find(vec=2|vec=4)vecN = 1 3 5 7 9 11 15 22>> value=vecN(find(mod(vecN,2)value = 1 3 5 7 9 11 15>> vec(value)=0vec = Columns 1 through 8 0 5 0 8 0 7 0 64 Columns 9 through 16 0 57 0 45 7 43 0

13、5 Columns 17 through 24 7 3 3 6253 3 4 3 0 Columns 25 through 26 -65 -34>> vec(vec=0)=vec = Columns 1 through 8 5 8 7 64 57 45 7 43 Columns 9 through 16 5 7 3 3 6253 3 4 3 Columns 17 through 18 -65 -34>> vecG=vecvecG = Columns 1 through 8 5 8 7 64 57 45 7 43 Columns 9 through 16 5 7 3 3

14、6253 3 4 3 Columns 17 through 18 -65 -344.给定一下3个向量:nums1=7 1 3 5 32 12 1 99 10 24nums2=54 1 456 9 20 45 48 72 61 32 10 94 11nums3=44 11 25 41 84 77 998 85 2 3 15编写脚本文件创建相应的3个向量,newNum1、newNum2、newNum3,分别包含以上3个向量中从第一个元素开始且间隔取值的元素。%取向量索引为奇数的值clearclcnums1=7 1 3 5 32 12 1 99 10 24;nums2=54 1 456 9 20 4

15、5 48 72 61 32 10 94 11;nums3=44 11 25 41 84 77 998 85 2 3 15;x1=find(mod(find(nums1),2)=1);%向量1values1=nums1(x1);newNums1=values1;disp('nums1=');disp(nums1);disp('newNums1=');disp(newNums1);x2=find(mod(find(nums2),2)=1);%向量2values2=nums2(x2);newNums2=values2;disp('nums2=');di

16、sp(nums2);disp('newNums2=');disp(newNums2);x3=find(mod(find(nums3),2)=1);%向量3values3=nums3(x3);newNums3=values3;disp('nums3=');disp(nums3);disp('newNums3=');disp(newNums3);Matlab第四章1. 有如下数据:X11.11.21.31.4y1.000001.233681.552711.993722.61170利用本章介绍的几种插值方法对其进行插值,得到每隔0.05的结果。%4种插

17、值方法x=1 1.1 1.2 1.3 1.4; %x与y的值y=1.00000 1.23368 1.55271 1.99372 2.61170;length_of_x=length(x);scalar_x=x(1):0.05:x(length_of_x);length_of_sx=length(scalar_x);for i=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_s

18、pline(i)=interp1(x,y,scalar_x(i),'spline'); y_cubic(i)=interp1(x,y,scalar_x(i),'cubic');endsubplot(2,2,1),plot(x,y,'*'),hold on,plot(scalar_x,y_nearest),title('nearest'); %输出subplot(2,2,2),plot(x,y,'*'),hold on,plot(scalar_x,y_liner),title('linear');su

19、bplot(2,2,3),plot(x,y,'*'),hold on,plot(scalar_x,y_spline),title('spline');subplot(2,2,4),plot(x,y,'*'),hold on,plot(scalar_x,y_cubic),title('cubic');2. 2. 求下列函数的解,并绘制图形。(1) y=ex-x5,初始点为x=8.(2) y=xsin(x) >> y=(x)exp(x)-x5;>> x=fzero(y,8)x = 12.7132>>

20、 fplot(y,10,14);>> hold on>> plot(x,y(x),'r*')>>y=(x)x*sin(x);>> x=fzero(y,0)x = 03.求下列函数的极值。(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: Maximum number of function evaluations has been exceeded - increase Ma

21、xFunEvals option. Current function value: -29278786696692084000000000000000000000000000000000000000000000000000000000000000000000.000000 x = 1.0e+043 * 1.1138 1.2383fvalue = -2.9279e+085>> z = (x)(x(1)-x(2)+1)2;>> x,fvalue=fminsearch(z,-1,1)x = -1.2073 -0.2073fvalue = 1.9045e-0224.计算下列积分

22、。(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.5254Matlab第五章1.编制一个脚本,查找给定字符串中指定字符出现的次数和位置.%查找给定字符串中指定字符出现的次数和位置 letter='a' %指定字符string='I have a long string' %给定字符串places=findstr

23、(string,letter); %位置times=length(places); %次数disp('places are :');disp(places);disp('times are :');disp(times);2.编写一个脚本,判断输入字符串中每个单词的首字母是否为大写,若不是则将其修改为大写,其他字母为小写.%将每个单词首字母变为大写 str = 'I have a long string'disp(str);nlength = length(str);for k=1:nlength if (k=1 | isspace(str(k-

24、1) && (str(k)<='z' && str(k)>='a') str(k) = char(double(str(k) - 32); endenddisp(str);3.创建 2×2 单元数组,第 1、2 个元素为字符串,第三个元素为整型变量,第四个元素为双精度(double)类型,并将其用图形表示.>> A=cell(2,2)A = >> A(1,1)='string1'>> A(1,2)='string2'>> A(2,

25、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 = 1x3 struct array with

26、fields: 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).gradetotal = 235>&

27、gt; average=total/3average = 78.3333>> new,index=sort(student.grade,'descend')new = 90 85 60index = 1 3 2Matlab第六章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, 8x = -

28、3 0 0 2 5 8>> y = -5, -2,0, 3, 4, 10y = -5 -2 0 3 4 10>> z1 = y<xz1 = 1 1 1 0 0 0>> z2 = x&yz2 = 1 0 0 1 1 1>> z3 = x|yz3 = 1 1 0 1 1 1>> z4 = xor(x,y)z4 = 0 1 0 0 0 02. 在MATLAB中使用一个循环确定:如果用户最初在一个银行帐户中存储$10000,并且在每年的年终再存储$10000(银行每年支付6%的利息),那么账户上要积累$1000000要需要多长时

29、间。%银行存款计算 a=10000;%本金b=10000;%每年新增存款sum=0;%存款总和i=1;sum=sum+a;while sum<1000000 i=i+1; sum=sum*(1+0.06)+b;enddisp('year=')disp(i)near=343. 某个特定的公司生产和销售高尔夫手推车。每周周末,公司都将那一周所生产的手推车转移到仓库(库存)之中。卖出的所有手推车都是从库存中提取。这个过程的一个简单模型为:I (k + 1) = P(k) + I (k) - S(k)其中:P(k) = 第k周所生产的手推车数量;I (k) = 第k周库存中的手推

30、车数量;S(k) = 第k周所卖出的手推车数量;以下为10周计划中的每周销售额;周12345678910销售额50556070707580809055假设每周的产量都基于前一周的销售额,所以有P(k) = S(k - 1)。假设第一周的产量为50辆手推车:即,P(1) = 50。编写一个MATLAB程序计算:10周之内每周库存之中的手推车数量或者计算手推车库存数量减少到0为止的时间,并同时绘制图形。针对以下两种情况运行该程序:(1)初始库存为50辆手推车,所以I(1)= 50;(2)初始库存为30辆手推车,所以I (1) = 30。>> s=50556070707580809055

31、s = 50 55 60 70 70 75 80 80 90 55>> for i=2:1:10p(i)=s(i-1);end>> pp = 0 50 55 60 70 70 75 80 80 90>> l=50 0 0 0 0 0 0 0 0 0l =50 0 0 0 0 0 0 0 0 0>> for n=2:1:10l(n)=l(n-1)+p(n)-s(n);end>> ll =50 45 40 30 30 25 20 20 10 45>> l=30 0 0 0 0 0 0 0 0 0l = 30 0 0 0 0 0

32、 0 0 0 0>> for n=2:1:10l(n)=l(n-1)+p(n)-s(n);end>> ll = 30 25 20 10 10 5 0 0 -10 25周12345库存量(1)5050454030库存量(2)3025202010周678910库存量(1)3030252010库存量(2)10500(<0)Matlab 第七章1.创建符号表达式f(X)=sinx+x。>> f = sym('sin(x)+x');2.计算习题1中表达式在处的值,并将结果设置为以下 5 种精度:小数点之后 1 位、2 位、5 位、10位和20位有

33、效数字。>> digits(2)>> vpa(subs(f,pi/6)ans =1.0>> digits(3)>> vpa(subs(f,pi/6)ans =1.02>> digits(6)>> vpa(subs(f,pi/6)ans =1.0236>> digits(11)>> vpa(subs(f,pi/6)ans =1.0235987756>> digits(21)>> vpa(subs(f,pi/6)ans =1.023598775598298704643.设x为符号

34、变量,f(x)=x4+x2+1,g(x)=x3+4x2+5x+8,试进行如下运算:(1)f(x)+g(x)(2)f(x)*g(x)(3)求g(x)的反函数(4)求g以f(x)为自变量的复合函数>> f = sym('x4 + x2 + 1');g = sym('x3 + 4*x2 + 5*x + 8');>> f+gans =x4 + x3 + 5*x2 + 5*x + 9>> f*gans =(x4 + x2 + 1)*(x3 + 4*x2 + 5*x + 8)>> finverse(g)Warning: Fun

35、ctional inverse is not unique. > In D:Program FilesMATLABR2011atoolboxsymbolicsymbolicsymengine.p>symengine at 52 In sym.finverse at 41ans =1/(9*(x/2 + (x/2 - 82/27)2 - 1/729)(1/2) - 82/27)(1/3) + (x/2 + (x/2 - 82/27)2 - 1/729)(1/2) - 82/27)(1/3) - 4/3>> syms x>> compose(g,f,x)ans

36、=4*(x4 + x2 + 1)2 + (x4 + x2 + 1)3 + 5*x2 + 5*x4 + 134.合并同类项(1)3x-2x2+5+3x3-2x-5(2)2x2-3xy+y2-2xy-2x2+5xy-2y+1>> f = sym('3*x - 2*x2 + 5 + 3*x2 - 2*x -5');>> collect(f)ans =x2 + x>> f = sym('2*x2 - 3*x*y + y2 - 2*x*y - 2*x2 + 5*x*y - 2*y + 1');>> collect(f)ans

37、 =y2 - 2*y + 15.因式分解(1)7798666进行因数分解,分解为素数乘积的形式(2)-2m8+512(3)3a2(x-y)2-4b2(y-x)2>> sym 779866ans =779866>> factor(779866)ans = 2 149 2617>> f=sym('-2*m8+512')f =512 - 2*m8>> factor(f)ans =-2*(m - 2)*(m + 2)*(m2 + 4)*(m4 + 16)>> g=sym('3*a3*(x-y)3-4*b2*(y-x)2

38、')g =3*a3*(x - y)3 - 4*b2*(x - y)2>> factor(g)ans =(x - y)2*(3*a3*x - 3*a3*y - 4*b2)6.绘制下列函数的图像(1),(2),>> f=sym('sin(x)+x2')f =sin(x) + x2>> ezplot(f,0,2*pi)>> g=sym('x3 + 2*x2 + 1')g =x3 + 2*x2 + 1>> ezplot(g,-2,2)7. 计算下列各式(1)(2),求(3),求,(4),>>

39、 limit(sym('(tan(x)-sin(x)/(1-cos(2*x)')ans =0>> y=sym('x3-2*x2+sin(x)')y =sin(x) - 2*x2 + x3>> diff(y)ans =cos(x) - 4*x + 3*x2>> f=sym('x*y*log(x+y)')f =x*y*log(x + y)>> diff(f,'x')ans =y*log(x + y) + (x*y)/(x + y)>> diff(f,'y')a

40、ns =x*log(x + y) + (x*y)/(x + y)>> y=sym('ln(1+t)')y =log(t + 1)>> int(y)ans =(log(t + 1) - 1)*(t + 1)>> int(y,0,27)ans =28*log(28) - 278计算下列各式(1)(2)(3)在 0 附近的Taylor 展开>> symsum(sym('(3/n)n'),1,inf)ans =sum(3n/nn, n = 1.Inf)>> symsum(sym('2n*sin(pi/(

41、3n)'),1,inf)ans =sum(2n*sin(pi/3n), n = 1.Inf)>> taylor(sym('sin(x)')ans =x5/120 - x3/6 + x9.求解线性方程组>> x,y = solve(sym('2*x+3*y=1'),sym('3*x+2*y=-1')x =-1y =110.对符号表达式z=xe-x2-y2,进行如下变换(1)关于的傅立叶变换(2)关于的拉普拉斯变换(3)分别关于和的 Z 变换>> syms x y>> z=x*exp(-(x2)+y2)z =x*exp(y2 - x2)>> syms u v>> fourier(z,x,u)ans =-(pi(1/2)*u*exp(y2 - u2/4)*i)/2>> laplace(z,y,v)ans =x*laplace(exp(y2 - x2), y, v)>> ztrans(z,y,v)ans =x*ztrans(exp(y2 - x2), y, v)11.绘制函数在,上的表面图>> syms x y>>

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论