matlab简单编程21个题目及问题详解_第1页
matlab简单编程21个题目及问题详解_第2页
matlab简单编程21个题目及问题详解_第3页
matlab简单编程21个题目及问题详解_第4页
matlab简单编程21个题目及问题详解_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

1、实用文档cl 3sin xy = cos x 0.5 -1、 设-(1+X ),把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+xA2);%y 的表达式plot(x,y)%画出图形图如下:考虑对整体求解cos,先求x乘以括号中的部分x=0:2*pi/100:2*pi;%x的步长以及范围从 0至U2*piy=cos(x.*(0.5+3*sin(x)./(1+x.A2);%y

2、 的表达式plot(x,y)%画出图形文案大全图如下:R1,求其各列的平均值和均方差。并求%产生正态分布随机矩阵2、产生8X6阶的正态分布随机数矩阵 该矩阵全体数的平均值和均方差。第二题的matlab源程序如下:R1=randn(8,6)R1 =aver=(sum(R1(1:end,1:end)./8 aver =0.07680.13630.1022a=std(R1(1:end,1:end)a =1.08190.80931.3456aver1=(sum(R1(:)./48aver1 =%产生各行的平均值-0.34730.49750.1044%产生各行的均方差也就是标准差0.82330.8079

3、1.2150%全体数的平均值1.0933-0.76971.5442-0.19241.41930.21571.10930.37140.08590.88860.2916-1.1658-0.8637-0.2256-1.4916-0.76480.1978-1.14800.07741.1174-0.7423-1.40231.58770.1049-1.2141-1.0891-1.0616-1.4224-0.80450.7223-1.11350.03262.35050.48820.69662.5855-0.00680.5525-0.6156-0.17740.8351-0.66691.53261.10060.

4、7481-0.1961-0.24370.18730.0950 b=std(R1(:) b =%全体数的均方差即标准差1.0103 3、设 x=rcost+3t,y=rsint+3, 分别令 r=2,3,4,画出参数 t=010 区间生成的 xy 曲线。第三题的matlab源程序如下: t=0:0.1:10; r=2;x=r*cos(t)+3*t;y=r*sin+3; plot(x,y,'r-') hold on t=0:0.1:10;r=3;x=r*cos(t)+3*t;y=r*sin+3; plot(x,y,'b-.') hold ont=0:0.1:10;r

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

6、:用polyval 函数)(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源程序如下

7、:roots(p)%求函数的根ans =3.7999-1.26071.34790.0564 + 0.9623i0.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'

8、&ch<='z');length(a)ans =46、设 x=sint, y=sin(nt+a) , (1)若 a=1,令 n =1,2,3,4, (2)若 n=2,取 a=0,兀 /3 , (1) matlab源程序如下;t=-pi:0.1:pi;a=1;n=1;x=sin(t);y=sin(n*t+a);subplot(221),plot(x,y)hold ont=-pi:0.1:pi;a=1;n=2;x=sin(t);y=sin(n*t+a);subplot(222),plot(x,y)hold ont=-pi:0.1:pi;a=1;n=3;x=sin(t)

9、;y=sin(n*t+a);subplot(223),plot(x,y)hold ont=-pi:0.1:pi;a=1;n=4;%倒序排列%找到小写字母的位置 %输出小写字母的个数在四个子图中分别画出其曲线。冗/2 ,及冗,在四个子图中分别画出其曲线%t的取值范围%a=1, n=1%x的表达式%y的表达式%在子图第一张,画出图像%保持figure不关闭%t的取值范围%a=1, n=2%x的表达式%y的表达式%在子图的第二张画出图像%保持figure不关闭%t的取值范围%a=1, n=3%x的表达式%y的表达式%在子图的第三张,画出图像%保持figure不关闭%t的取值范围%a=1, n=4%x

10、的表达式x=sin(t);y=sin(n*t+a);subplot(224),plot(x,y)%y的表达式%在子图的第四张上,绘制图像图形如下所示:(2) matlab源程序如下所示: t=-pi:0.1:pi;a=0;n=2;x=sin(t);y=sin(n*t+a);subplot(221),plot(x,y)hold ont=-pi:0.1:pi;a=pi./3;n=2;x=sin(t);y=sin(n*t+a);subplot(222),plot(x,y)hold ont=-pi:0.1:pi;a=pi./2;n=2;x=sin(t);y=sin(n*t+a);subplot(223

11、),plot(x,y)hold ont=-pi:0.1:pi;a=pi;n=2;%t的取值%a与n的取值%x的表达式%y的表达式%在子图的第一张绘制图像%保持日gure窗口不关闭%t的取值%a与n的取值%x的表达式%y的表达式%在子图的第二张绘制图像%保持日gure窗口不关闭%t的取值%a与n的取值%x的表达式%y的表达式%在子图的第三张绘制图像%保持日gure窗口不关闭%t的取值范围%a与n的取值x=sin; y=sin(n*t+a);%x的表达式%y的表达式%在四个字图的第四张画出图像subplot(224),plot(x,y)22、7、绘制z =x2e<x*)在定义域x=-2,2,

12、y=-2,2 内的曲面Matlab源程序如下: x,y=meshgrid(-2:0.1:2); z=x.A2.*exp(-(x.A2+y.A2); surf(x,y,z)%此处描述x, y的范围%z的表达式%绘制曲面图形如下所示:经过旋转之后的图形:0.40.350.30.250 2D.150.1口050(_x2 4x -3)/2-3 < x < -18、y = «x2 +1-1 <x <1 ,画出在匚3,3】上的曲线2一 -一(-x +4x3)/21 <x<3所建立的M文件如下所示: function y=A(x);if x>=-3&

13、;x<-1y=(-xA2-4*x-3)./2;elseif x>=-1&x<1y=-x.A2+1;else x>=1&x<=3y=(-x.A2+4*x-3)./2;%文件名为A%在-3x<-1的条件下%y所对应上述条件下的表达式%-1 «x<1%y所对应的上述条件下的表达式%1 «x «3end在 command windows 中输入:%y所对应的上述条件下的表达式%结束fplot('A',-3,3) % 绘制在-3到3上的曲线所得图形如下所示:syms xy=x.*exp(2.*x);s

14、=diff(y,x,20)9、(1)设¥=£产,求d网%定义变量x%y的表达式%对y求x的20阶导数s =10485760*exp(2*x) + 1048576*x*exp(2*x)(2)设贯=兑?工十ex%,求一syms x%定义变量xy=sin(x).A4+cos(x).A4;%y 的表达式s=diff(y,x,10)%对 y 求 x 的 10 阶导数s =-262144*cos(x)A4 + 1572864*cos(x)A2*sin(x)A2 - 262144*sin(x4现(3)设工=/与粉,十工外。节,求去syms x y%定义自变量x, yz=y.A4.*(si

15、n(x).A4)+x.A4.*(cos(y).A4);%z 的表达式s=diff(z,x)%对z求x的偏导数s =4*xA3*cos(y)A4 + 4*yA4*cos(x)*sin(x)A3(4)(x2 1)(x2 x)dxsyms xi=int(1/(x.A2+1).*(x.A2+x);pretty(i)%定义自变量x%不定积分表达式%求解不定积分/ i log(x + 1)log(x) + log(x + i) | 1/4 | -+ log(x - i) | - - 1/4 |(5)(9-x2)3dxsyms xi=int(sqrt(9-xA2)A3)./(xA6); pretty(i)/

16、 923 1/2I - - 1 I (- (x - 9)I 2 | x /%定义自变量x%不定积分表达式%求解不定积分(6)2 dx1 x x3345 xsyms xi=int(1./(x+x.A3),2,1) i =log(10A(1/2)/4)%定义自变量x%定积分表达式%定积分的解(7)求级数的和:n 2 nm 2nsyms n%定义自变量nf=(n+2)./(2.An);%级数的表达式symsum(f,n,n-1,inf)%对级数求和ans = 2*2A(1 - n)*(n + 2)(8)利用函数int计算二重不定积分看即syms x yi=int(int(x+y)*exp(-x.*y

17、);pretty(i)%定义自变量x, y%二重不定积分表达式%求解二重不定积分y exp(x y),显示所有小于n的质数。%定义文件名为xin10%清屏,清内存%输入数据%i的变化范围%判断是否为质数%输出质数%结束if%结束for% 结束 function0时结束输入,求这些数的平均值以及平方10、编制m文件,输入n (正整数) 编制的m文件如下所示:function xin10;clc,clearn=input('输入一个正整数:')for i=1:1:nif isprime(i)disp(i)endendend11、从键盘输入若干个数,当输入和。编制的m文件如下所示:假

18、设输入数据结束时输入0作为结束,不考虑输入的数据中出现会结束输入的现象,则程序如下:%定义文件名为lin11%清屏,清内存function lin11;clc,cleark=size(m) for i=1:k(2)if m(i)=0 k(2)=i-1;end end M=m(1:k(2) B=sum(M)./k(2) C=sum(MA2) endm=input('以1*n矩阵的形式输入数据并以0结尾:)输入数据%m的大小%i的变化范围%m=0时的每一个k值%另卜(2) =i-1%结束if循环%结束for循环%将若干个数输出%对若干个数求和再求平均值%输出m的值,进行求值% 结束 fun

19、ction编制的m仪件如下所示:function lin12;clc,cleara=rand(10,1)for i=1:length(a)12、利用rand产生10个随机数,利用for循环对其进行排序(从大到小)%定义文件名为lin12%清屏,清内存%产生10个随机数,这个地方可加可不加;%i的取值范围for j=1:length(a)-1if a(j)<a(j+1) t=a(j); a(j)=a(j+1); a(j+1)=t;endendendaendfunction lin13;clc,cleara=input('请输入数据: n=length(a);for i=1:n/2b

20、=a(i);a(i)=a(n+1-i);a(n+1-i)=b;endfprintf(' %d',a) endfunction lin14;clc,cleara=input('请输入数据:','s) n=length(a);fprintf('位数 %d',n);end%定义文件名为lin15%清屏,清内存%输入a的值%输入b的值%定义i, sum, he的初始值%i的变化范围%通过i值得变化得到不同的数值%令sum为总和%i的变化%j的取值范围%冒泡法进行排序,判断两个数的大小%将小的数赋值给t%将大数赋值给a (j)%将1赋值给a (j+

21、1)%结束if循环%结束for循环%结束for循环%输出数据命匕处一定要写上a,不然没有数据输出% 结束 function13、将一个整型数组的元素按逆序重新存放(如原序为:8, 6, 5, 4改为:4, 5, 6, 8)。编制的m文件如下所示:%定义文件名为lin13%清屏,清内存')%输入数据%判断数据的长度%i的变化范围%将2赋值给b%将对应位置的值复制给a (i)%将b值赋值给a (n+1-i)%结束for循环%这个地方d之前有一个空格,保证输出数据时分开的% 结束 function14、输入一个整数,写一程序输出它是几位数编制的m文件如下所示:%定义文彳名为lin14%清屏,

22、清内存%此处由于输入的整数是以整体的形式输入,所以s'%计算a的长度%输出a的位数% 结束 function 15、从键盘上输入 a与n的值,计算sum=a+aa+aaa+aaaa+(共n项)的和。 例 a=2, n=4,则 sum=2+22+222+2222.编制的m文件如下所示:function lin15;clc,cleara=input('请输入 a=) n=input('请输入 n=') i=1;sum=0;he=0;while i:nhe=he+a*10A(i-1); sum=sum+he;i=i+1;end% 结束 whilefprintf(

23、9;sum is %ld',sum);%输出总和end% 结束 function16、设计一个用于计算个人所有税的程序。假设个人所得税的缴纳标准为:月 收入少于等于800元者不纳税;超出800元的部分,纳税5%超出2000元的部 分,纳税10%超出5000元的部分,纳税20%超出10000元的部分,纳税30% 超出100000元的部分,纳税40%编制的m文件如下所示:function xin16;%定义文件名为 xin16clc,clear%清屏,清内存a=input('请输入月收入:')%输入a的值if a>100000%工资数目大于100000时j=(a-10

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

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

26、rem(a,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;clc,cleara=input('

27、请输入数据','s) n=length(a);b=;e二口;d=',';%建立文件名为xin18%清屏,清内存%输入数据%计算a的长度%令b为空集%令6为空集%令为,z=fix(n/3); %z为对三求商然后对零取整,z是添加几个,的标志if rem(n,3)=0;c=rem(n,3);for i=1:c%如果n对三取余不等于0%c为对三取余数之后的余数,为1或2%i的取值范围b=b,a(i);%将2的最高位赋值给b,如果c=1, b=a最高位上的一位数,如果c=2, b=a最高位上的两位数 endif c=1%讨论c=1的情况for i=1:z%i的变化范围e

28、=e,d;%将逗号放到e中去for i=(3*i-1):(3*i+1)%i 的变化范围e=e,a(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%此处讨论恰好

29、整除的情况for i=1:3%i的取值范围b=b,a(i);%整除的情况下把前三位直接赋值到b中去end%结束for循环for i=1:(z-1)%i的取值范围。由于恰好整除,所以前三位不用加逗号,所以逗号数为z-1e=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中的逗号后面endend%结束for循环%结束for循环end f=b,e end%结束if循环%将b得到的前几位与eW到的逗号数据放入f中去% 结束 function19、求出矩阵a中每行元素的平均值和平均最大的行号。编

30、制的m文件如下所示:function lin19;clc,cleara=input('输入矩阵:');b=;i,j=size(a);for i=1:is=0;for j=1:j s=s+a(i,j);end%定义文件名为lin19%清屏,清内存%输入矩阵%定义b为空集%对2求行列数,放到i, j中%i的取值范围%令$二0%j的取值范围%对i 一定时对行累加,改变i值,不同的行重新进行求和%结束for循环%输出每行平均值fprintf('平均值(i=%d)=%dn',i,s/j)b=b,s/j;endw=0;for p=1:iif b(p)>w w=b(p)

31、;endendfprintf('平均最大行1end20、%平均值放入b中去%结束for循环%令0=0%p的取值范围%每一行的平均值与w比较;%如果平均值大于w,将平均值赋值给w%结束if循环%结束for循环%dn',p)%输出平均最大的行号% 结束 function考虑甬数山三一二.就在r = 3:0L8处生戊-纲梏£果用馥三次样 条和B样条分别栈据进体合,并由数果求取二阶导粼将鼬的给粘理论出自 (使用函数csapi和spapi及其相关函数)x=3:0.4:8;%x 的取值y=(sqrt(1+x)-sqrt(x-1)./(sqrt(2+x)+sqrt(x-1); %y

32、 的表达式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 coefs: 12x4 double pieces: 12order: 4dim: 1Sp.coefs%显示每个区间上三次多项式的系数ans =-0.00340.0169-0.05340.1605-0.00340.0127-0.04150.1416-0.00180.0086-0.03300.1268-0.00

33、130.0064-0.02700.1149-0.00090.0048-0.02250.1050-0.00070.0038-0.01900.0968-0.0005-0.0004-0.0003-0.0002-0.00020.00300.00240.00200.00160.0014-0.0163-0.0142-0.0124-0.0110-0.00980.08970.08360.07830.07370.0695-0.00020.0012-0.00870.0658ezplot('(sqrt(1+x)-sqrt(x-1)./(sqrt(2+x)+sqrt(x-1)',3,8)%在区间绘制 yhold on%保持figure不关闭fnplt(Sp)%绘制出插值效果(sqrt(1 -+x)-£qrt(K-1 )/(sqrl(2*x)+sqrt(M-1)分段三次样条插值拟合效果

温馨提示

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

评论

0/150

提交评论