matlab简单编程21个题目与答案_第1页
matlab简单编程21个题目与答案_第2页
matlab简单编程21个题目与答案_第3页
matlab简单编程21个题目与答案_第4页
matlab简单编程21个题目与答案_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

1、. .PAGE23 / NUMPAGES23设 ,把x=02间分为101点,画出以x为横坐标,y为纵坐标的曲线。第一题的matlab源程序:考虑cos(x)为一个整体,然后乘以中括号里面的全部x=0:2*pi/100:2*pi; %x的步长以与围从0到2*piy=cos(x).*(0.5+3*sin(x)./(1+x.2); %y的表达式plot(x,y)%画出图形图如下:考虑对整体求解cos,先求x乘以括号中的部分x=0:2*pi/100:2*pi; %x的步长以与围从0到2*piy=cos(x.*(0.5+3*sin(x)./(1+x.2); %y的表达式plot(x,y)%画出图形图如下

2、:2、产生86阶的正态分布随机数矩阵R1, 求其各列的平均值和均方差。并求该矩阵全体数的平均值和均方差。 第二题的matlab源程序如下: R1=randn(8,6) %产生正态分布随机矩阵R1 = 1.0933 -0.7697 1.5442 -0.1924 1.4193 0.2157 1.1093 0.3714 0.0859 0.8886 0.2916 -1.1658 -0.8637 -0.2256 -1.4916 -0.7648 0.1978 -1.1480 0.0774 1.1174 -0.7423 -1.4023 1.5877 0.1049 -1.2141 -1.0891 -1.061

3、6 -1.4224 -0.8045 0.7223 -1.1135 0.0326 2.3505 0.4882 0.6966 2.5855 -0.0068 0.5525 -0.6156 -0.1774 0.8351 -0.6669 1.5326 1.1006 0.7481 -0.1961 -0.2437 0.1873aver=(sum(R1(1:end,1:end)./8 %产生各行的平均值aver =0.0768 0.1363 0.1022 -0.3473 0.4975 0.1044a=std(R1(1:end,1:end) %产生各行的均方差也就是标准差a = 1.0819 0.8093 1.

4、3456 0.8233 0.8079 1.2150aver1=(sum(R1(:)./48 %全体数的平均值aver1 = 0.0950b=std(R1(:) %全体数的均方差即标准差b =1.01033、设x=rcost+3t,y=rsint+3,分别令r=2,3,4,画出参数t=010区间生成的xy曲线。第三题的matlab源程序如下:t=0:0.1:10; %t的取值以0.1的步长从0到10r=2; %r=2x=r*cos(t)+3*t; %x的表达式y=r*sin(t)+3; %y的表达式plot(x,y,r-) %用红色线绘制曲线hold on %保持窗口figure窗口不关闭t=0

5、:0.1:10;%t的取值以0.1的步长从0到10r=3;%r=3x=r*cos(t)+3*t;%x的表达式y=r*sin(t)+3; %y的表达式plot(x,y,b-.) %用蓝色点划线绘制曲线hold on %保持窗口figure窗口不关闭 t=0:0.1:10; %t的取值以0.1的步长从0到10r=4; %r=4x=r*cos(t)+3*t; %x的表达式y=r*sin(t)+3; %y的表达式plot(x,y,m-) %用红紫色线绘制曲线图形如下:4、设f(x)=x5- 4x4 +3x2- 2x+ 6(1) 在x=-2,8之间取100个点,画出曲线,看它有几个过零点。(提示:用po

6、lyval 函数)(2) 用roots函数求此多项式的根。(1)matalab的源程序如下:(利用的是在同一图中展现两条线,通过放大看交点)x=-2:0.1:8; %x的取值围y=0; %y=0plot(x,y,m) %用红紫色表示绘制出的y=0的图像hold on %保持figure窗口不关闭x=-2:0.1:8; %x的取值围p=1,-4,0,3,-2,6; %p表示函数表达式的系数矩阵y=polyval(p,x),plot(x,y) %y=polyval表示求多项式x处的y值,绘制图像图如下:将图形进行放大(如下),发现在实数域上有3个零点。(2)matlab源程序如下:roots(p)

7、%求函数的根ans = 3.7999 -1.2607 1.3479 0.0564 + 0.9623i 0.0564 - 0.9623i可见实数解有三个,复数解有两个。5、建立一个字符串向量,然后对该向量做如下处理:(1) 取第15个字符组成的子字符串。(2) 将字符串倒过来重新排列。(3) 统计字符串中小写字母的个数。整个题的源程序如下所示:ch=abcj245DFGK; %建立一个字符串subch=ch(1:5) %取15个字符subch =abcj2revch=ch(end:-1:1) %倒序排列revch =KGFD542jcbaa=find(ch=a&ch=-3&x-1%在-3x=-1

8、&x1 %-1x=1&x=3 %1x3 y=(-x.2+4*x-3)./2; %y所对应的上述条件下的表达式end%结束在command windows 中输入:fplot(A,-3,3) %绘制在-3到3上的曲线所得图形如下所示:9、(1)设,求syms x %定义变量xy=x.*exp(2.*x); %y的表达式s=diff(y,x,20) %对y求x的20阶导数s =10485760*exp(2*x) + 1048576*x*exp(2*x)(2)设,求syms x %定义变量xy=sin(x).4+cos(x).4; %y的表达式s=diff(y,x,10) %对y求x的10阶导数s

9、=- 262144*cos(x)4 + 1572864*cos(x)2*sin(x)2 - 262144*sin(x)4(3)设,求syms x y %定义自变量x,yz=y.4.*(sin(x).4)+x.4.*(cos(y).4); %z的表达式s=diff(z,x) %对z求x的偏导数s =4*x3*cos(y)4 + 4*y4*cos(x)*sin(x)3(4)syms x %定义自变量xi=int(1/(x.2+1).*(x.2+x); %不定积分表达式pretty(i) %求解不定积分 / i log(x + 1) / i log(x) + log(x + i) | - - - 1

10、/4 | - - + log(x - i) | - - 1/4 | 4 / 2 4 /(5)syms x %定义自变量 xi=int(sqrt(9-x.2).3)./(x.6); %不定积分表达式pretty(i) %求解不定积分 / 9 2 3 1/2 | - - 1 | (- (x - 9) ) | 2 | x / - - 3 45 x(6)syms x %定义自变量xi=int(1./(x+x.3),2,1) %定积分表达式i = %定积分的解log(10(1/2)/4)(7)求级数的和: syms n %定义自变量nf=(n+2)./(2.n); %级数的表达式symsum(f,n,n

11、-1,inf) %对级数求和ans =2*2(1 - n)*(n + 2) (8)利用函数int计算二重不定积分syms x y %定义自变量x,yi=int(int(x+y).*exp(-x.*y); %二重不定积分表达式pretty(i) %求解二重不定积分 2 y + x y + 2 - 3 y exp(x y)10、编制m文件,输入n(正整数),显示所有小于n的质数。编制的m文件如下所示:function xin10; %定义文件名为xin10clc,clear %清屏,清存n=input(输入一个正整数:) %输入数据for i=1:1:n %i的变化围if isprime(i) %

12、判断是否为质数 disp(i) %输出质数end%结束ifend %结束forend%结束function11、从键盘输入若干个数,当输入0时结束输入,求这些数的平均值以与平方和。编制的m文件如下所示:假设输入数据结束时输入0作为结束,不考虑输入的数据中出现会结束输入的现象,则程序如下:function lin11; %定义文件名为lin11clc,clear %清屏,清存m=input(以1*n矩阵的形式输入数据并以0结尾:) %输入数据k=size(m) %m的大小for i=1:k(2) %i的变化围if m(i)=0 %m=0时的每一个k值 k(2)=i-1; %另k(2)=i-1en

13、d%结束if循环end%结束for循环M=m(1:k(2) %将若干个数输出B=sum(M)./k(2) %对若干个数求和再求平均值C=sum(M.2) %输出m的值,进行求值end %结束function12、利用rand产生10个随机数,利用for循环对其进行排序(从大到小)。编制的m文件如下所示:function lin12; %定义文件名为lin12clc,clear %清屏,清存a=rand(10,1) %产生10个随机数,这个地方可加可不加;for i=1:length(a) %i的取值围for j=1:length(a)-1 %j的取值围if a(j)100000 %工资数目大于

14、100000时 j=(a-100000)*0.4+90000*0.3+5000*0.2+3000*0.1+1200*0.5; %交税计算公式elseif a10000 %工资数目大于10000且小于100000的条件下时 j=(a-10000)*0.3+5000*0.2+3000*0.1+1200*0.5; %交税计算公式elseif a5000 %工资数目大于5000且小于10000时 j=(a-5000)*0.2+3000*0.1+1200*0.5; %交税计算公式elseif a2000 %工资数目大于2000且小于5000时 j=(a-2000)*0.1+1200*0.05; %交税计

15、算公式elseif a800 %工资数目大于800且小于2000时 j=(a-800)*0.05; %交税计算公式else%工资低于800时 j=0 %不交税end%结束if循环fprintf( %d,j) %输出交税数目end %结束function17、求爱因斯坦数学题。有一条长阶,若每步跨2阶,则最后剩余1阶;若每步跨3阶,则最后剩2阶;若每步跨5阶,则最后剩4阶;若每步跨6阶,则最后剩5阶;若每步跨7步,最后正好一阶不剩。编制的m文件如下所示:function xin17; %建立文件xin17clc,clear %清屏,清存for a=7:1000 %a的取值变化围if rem(a,

16、2)=1&rem(a,3)=2&rem(a,5)=4&rem(a,6)=5&rem(a,7)=0%判断条件就是题目的要求break %跳出if,再进行循环end%结束if循环end%结束for循环fprintf(台阶 is %d,a); %输出台阶数目end%结束function通过计算结果显示为119阶台阶。18、将一个正整数n输出成“千分位”形式,即从个位数起,每三位之间加一个逗号,例如,将7654321输出成7,654,321.编制的m文件如下所示:function xin18; %建立文件名为xin18clc,clear %清屏,清存a=input(请输入数据,s) %输入数据n=le

17、ngth(a); %计算a的长度b=; %令b为空集e=; %令e为空集d=,; %令d为,z=fix(n/3); %z为对三求商然后对零取整,z是添加几个,的标志if rem(n,3)=0; %如果n对三取余不等于0 c=rem(n,3); %c为对三取余数之后的余数,为1或2for i=1:c %i的取值围b=b,a(i); %将a的最高位赋值给b,如果c=1,b=a最高位上的一位数,如果c=2,b=a最高位上的两位数endif c=1 %讨论c=1的情况for i=1:z %i的变化围 e=e,d; %将逗号放到e中去for i=(3*i-1):(3*i+1) %i的变化围 e=e,a(

18、i); %根据i随z的变化,将2,3,4。5,6,7。等位置上的数据放到e中的逗号后面end%结束for循环end%结束for循环。此处的for循环,就是输入一个逗号,输入三个数据,以此类推else c=2 %讨论c=2的情况for i=1:z %i的变化围 e=e,d; %将逗号放到e中去for i=(3*i):(3*i+2) %i的取值围 e=e,a(i); %将3,4,5。6,7,8。等位置上的数据放到逗号后面end%结束for循环end%结束for循环end%结束if循环else%此处讨论恰好整除的情况for i=1:3 %i的取值围 b=b,a(i); %整除的情况下把前三位直接赋值

19、到b中去end%结束for循环for i=1:(z-1) %i的取值围。由于恰好整除,所以前三位不用加逗号,所以逗号数为z-1 e=e,d; %将逗号放到e中for i=3*i+1:3*i+3 %i的取值围 e=e,a(i); %根据i随z的变化,将4,5,6。7,8,9。等位置上的数据放到e中的逗号后面end%结束for循环end%结束for循环end %结束if循环f=b,e %将b得到的前几位与e得到的逗号数据放入f中去end%结束function 19、求出矩阵a中每行元素的平均值和平均最大的行号。编制的m文件如下所示:function lin19; %定义文件名为lin19clc,c

20、lear %清屏,清存a=input(输入矩阵:); %输入矩阵b=; %定义b为空集i,j=size(a); %对a求行列数,放到i,j中for i=1:i %i的取值围 s=0; %令s=0for j=1:j %j的取值围 s=s+a(i,j); %对i一定时对行累加,改变i值,不同的行重新进行求和end %结束for循环 fprintf( 平均值(i=%d)=%dn,i,s/j) %输出每行平均值 b=b,s/j; %平均值放入b中去end%结束for循环 w=0; %令w=0for p=1:i %p的取值围if b(p)w %每一行的平均值与w比较 w=b(p); %如果平均值大于w,

21、将平均值赋值给wend%结束if循环end%结束for循环fprintf(平均最大行 %dn,p) %输出平均最大的行号end%结束function20、(使用函数csapi和spapi与其相关函数)x=3:0.4:8;%x的取值y=(sqrt(1+x)-sqrt(x-1)./(sqrt(2+x)+sqrt(x-1); %y的表达式Sp=csapi(x,y) %得到分段三次样条的有关数据Sp = form: pp breaks: 3 3.4000 3.8000 4.2000 4.6000 5 5.4000 5.8000 6.2000 6.6000 7.0000 7.4000 7.8000 co

22、efs: 12x4 double pieces: 12 order: 4 dim: 1Sp.coefs %显示每个区间上三次多项式的系数ans = -0.0034 0.0169 -0.0534 0.1605 -0.0034 0.0127 -0.0415 0.1416 -0.0018 0.0086 -0.0330 0.1268 -0.0013 0.0064 -0.0270 0.1149 -0.0009 0.0048 -0.0225 0.1050 -0.0007 0.0038 -0.0190 0.0968 -0.0005 0.0030 -0.0163 0.0897 -0.0004 0.0024 -

23、0.0142 0.0836 -0.0003 0.0020 -0.0124 0.0783 -0.0002 0.0016 -0.0110 0.0737 -0.0002 0.0014 -0.0098 0.0695 -0.0002 0.0012 -0.0087 0.0658ezplot(sqrt(1+x)-sqrt(x-1)./(sqrt(2+x)+sqrt(x-1),3,8) %在区间绘制yhold on %保持figure不关闭fnplt(Sp) %绘制出插值效果分段三次样条插值拟合效果:图a,函数拟合syms x %定义自变量xy=(sqrt(1+x)-sqrt(x-1)./(sqrt(2+x)+sqrt(x-1); %y的表达式y2=diff(y,x,2); %对函数求二阶导数ezplot(y2,3,8) %绘制在区间上二阶导数的图像hold on %保持figu

温馨提示

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

评论

0/150

提交评论