matlab 编程第二章习题,matlab编程和应用习题和一些参考答案解析

a7f4a3f590493a1e451dd952a488fd7c.gif matlab编程和应用习题和一些参考答案解析

(12页)

4405a669-ad65-40ef-bc75-c5eae807ee4e1.gif

本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!

19.9 积分

word 资料下载可编辑 Matlab上机实验一、二1. 安装Matlab软件。2. 验证所学内容和教材上的例子。3.求下列联立方程的解>> a=[3 4 -7 -12;5 -7 4 2;1 0 8 -5;-6 5 -2 10];>> b=[4;4;9;4];>> c=a\bc = 5.2226 4.4570 1.4718 1.59944.设,,求C1=A*B’;C2=A’*B;C3=A.*B,并求上述所有方阵的逆阵。>> A=[1 4 8 13;-3 6 -5 -9;2 -7 -12 -8];>> B=[5 4 3 -2;6 -2 3 -8;-1 3 -9 7];>> C1=A*B'C1 = 19 -82 30 12 27 3 -38 54 29>> C2=A'*BC2 = -15 16 -24 36 63 -17 93 -105 22 6 117 -60 19 46 84 -10>> C3=A.*BC3 = 5 16 24 -26 -18 -12 -15 72 -2 -21 108 -56>> inv(C1)ans = 0.0062 0.0400 -0.0106 -0.0046 0.0169 0.0030 0.0168 0.0209 0.0150>> inv(C2)Warning: Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND = 8.997019e-019.ans = 1.0e+015 * -0.9553 -0.2391 -0.1997 0.2700 0.9667 0.2420 0.2021 -0.2732 -0.4473 -0.1120 -0.0935 0.1264 -1.1259 -0.2818 -0.2353 0.3182>> inv(C3)??? Error using ==> invMatrix must be square.5.设 ,把x=0~2π间分为101点,画出以x为横坐标,y为纵坐标的曲线。>> x=linspace(0,2*pi,101);>> y=cos(x)*(0.5+(1+x.^2)\3*sin(x));>> plot(x,y,'r')6.产生8×6阶的正态分布随机数矩阵R1, 求其各列的平均值和均方差。并求该矩阵全体数的平均值和均方差。 (mean var)a=randn(8,6)mean(a)var(a)k=mean(a)k1=mean(k)i=ones(8,6)i1=i*k1i2=a-i1i3=i2.*i2g=mean(i3)g2=mean(g)或者u=reshape(a,1,48);p1=mean(u)p2=var(u)7.设x=rcost+3t,y=rsint+3,分别令r=2,3,4,画出参数t=0~10区间生成的x~y曲线。>> t=linspace(0,10);>> r1=2;>> x1=(r1*cos(t)+3*t);>> y1=r1*sin(t)+3;>> r2=3;>> x2=(r2*cos(t)+3*t);>> y2=r2*sin(t)+3;>> r3=4;>> x3=(r3*cos(t)+3*t);>> y3=r3*sin(t)+3;>> plot(x1,y1,'r',x2,y2,'b',x3,y3,'m')8.设f(x)=x5- 4x4 +3x2- 2x+ 6(1) 在x=[-2,8]之间取100个点,画出曲线,看它有几个过零点。(提示:用polyval 函数)>> x=linspace(2,8,100);>> y=polyval([1 0 -4 3 -2 6],x);>> plot(x,y,'b',x,0,'y')(2) 用roots函数求此多项式的根。t=[1 0 -4 3 -2 6]p=roots(t)9.建立一个字符串向量,然后对该向量做如下处理:(1) 取第1~5个字符组成的子字符串。(2) 将字符串倒过来重新排列。(3) 统计字符串中小写字母的个数。10.利用帮助查找limit函数的用法,并自己编写,验证几个函数极限的例子。 Matlab上机实验二1.验证所授课程的课件。2.设x=sint, y=sin(nt+a),(1) 若a=1,令n =1,2,3,4,在四个子图中分别画出其曲线。(2) 若n=2,取a=0,π/3,π/2,及π,在四个子图中分别画出其曲线。(1)a=1; x=sin(t);y1=sin(1*t+a);y2=sin(2*t+a);y3=sin(3*t+a);y4=sin(4*t+a); subplot(2,2,1);plot(x,y1);subplot(2,2,2);plot(x,y2);subplot(2,2,3);plot(x,y3);subplot(2,2,4);plot(x,y4)(2)n=2;x=sin(t);y1=sin(2*t+0);y2=sin(2*t+pi/3);y3=sin(2*t+pi/2);y4=sin(2*t+pi);subplot(2,2,1);plot(x,y1);subplot(2,2,2);plot(x,y2);subplot(2,2,3);plot(x,y3);subplot(2,2,4);plot(x,y4)注:本题好像题目本身就有问题,因为“t” 取值不明,所以运行不了,画不出图来。转化为符号式来画图也是不可行的。(纯粹个人意见,可能我想错了方向,会做的同学请上传一下正确的做法)3.绘制在定义域x=[-2,2],y=[-2,2]内的曲面。(利用meshgrid)x=-2:2;y=x;[X,Y]= meshgrid(x,y);Z=X^2*exp(-(X^2+Y^2));mesh(X,Y,Z) 4.求代数方程3x5+4x4+7x3+2x2+9x+12=0的所有根。(利用roots函数)p=[3 4 7 2 9 12];roots(p)5.把1开五次方,并求其全部五个根。(提示:解x5-1=0)p=[1 0 0 0 0 -1];roots(p)6,,画出在上的曲线。x1=-3:0.01:-1;y1=(-x1.^2-4.*x1-3)/2; x2=-1:0.01:1;y2=-x2.^2+1; x3=1:0.01:3;y3=(-x3.^2+4.*x3-3)/2;plot(x1,y1);hold on; plot(x2,y2);hold on; plot(x3,y3) Matlab上机实验三1.设,求x=sym('x'); y=x*exp(2*x);diff(y,20)2.设,求x=sym('x'); y=(sin(x))^4+(cos(x))^4;diff(y,10)3.设,求x=sym('x'); y=sym('y');z=y^4*((sin(x))^4)+x^4*((cos(y))^4);int(z,x)4.x=sym('x');int(1/(x^2+1)*(x^2+x),x)5.x=sym('x');int((sqrt((9-x^2)^3)/x^6),x)6.x=sym('x');int(x+x^3,x,1,2)7.求级数的和: sym(‘n’);symsum(n+2/2^n,n,1,inf)8.利用函数int计算二重不定积分x=sym('x'); y=sym('y');z=(x+y)*exp(-x*y);a=int(z,x);int(a,y)Matlab上机实验四1. 编写一个M函数文件计算下列级数的和:x和n的值由input指令给出。%test.mfunction f=test x=input('Input the x:\n'); n=input('Input the n:\n'); j=1; f2=0;for i=1:n; j=1;for k=1:i; j=j*k; f1=x^i/j;endf2=f2+f1;endf=f2+1;2.编制m文件,等待键盘输入,输入密码123,密码正确,显示输入密码正确,程序结束;否则提示,重新输入。方法一:function f=checkpassword=input('Please input the password:\n');if (password==123) disp(‘输入密码正确’)else check;end方法二:function pwn=0;k=0;n=input('请输入密码(整数)\n');while(k==0)if n==123 disp('输入正确') k=1;else k=0; n=input('密码错误,请重新输入密码(整数)\n');endend3.编制m文件,输入n(正整数),显示所有小于n的质数。%第一m文件(用于判断某数是否为素数):function leap=panduan(n)leap=1;for i=2:sqrt(n+1) if mod(n,i)==0 leap=0; break; endend%第二个m文件(用于读进n个数并调用panduan.m判断读数是否为素数,并把是素数的显示出来):function zhishu(n)for m=2:n if panduan(m)==1 disp(m); endend4.编写一个M函数文件fun_es(x),计算如下函数:,其中参数可以为标量,也可以为向量。在Matlab指令窗口键入如下命令检验该函数: fun_es(3)function fun_es(x)y=0.5.*exp(x./3)-x.^2.*sin(x)5.下面程序实现什么功能?for n=100:200if rem(n,77)~=0 continueendbreakendn 求100到200之间,第一个77的整倍数6.编写m函数文件求半径为r的圆的面积和周长。function f=circle(r)S=pi*r^2L=2*pi*r7.数组[1:99]中素数(即质数)元素的和%第一m文件(用于判断某数是否为素数):function leap=panduan(n)leap=1;for i=2:sqrt(n+1) if mod(n,i)==0 leap=0; break; endend%第二个m文件(用于读进1-99并调用panduan.m判断读数是否为素数,并把是素数的加起来,最后输出):function total(n)k=0;for m=1:n if panduan(m)==1 k=k+m; endendk8.从键盘输入若干个数,当输入0时结束输入,求这些数的平均值以及平方和。% 求n个数的平均值及平方和function pingfang1 l=0; total1=0; total2=0; a=input('input a:\n'); while(a~=0) l=l+1; total1=total1+a; total2=total2+a^2; a=input(''); end avg=total1/l total2 9.输入x,y的值,并将它们的值互换后输出。function f=change(x,y)x=input('Input x:\n');y=input('Input y:\n');a=x;x=y;y=a;x,y10.利用rand产生10个随机数,利用for循环对其进行排序(从大到小)。disp('排列前:')a=rand(10,1)for i=1:10for j=1:10-iif a(j+1,1)>a(j,1)b=a(j,1);a(j,1)=a(j+1,1);a(j+1,1)=b;endendenddisp('排列后:')aMatlab上机实验四1. 编写一个M函数文件计算下列级数的和:x和n的值由input指令给出。function y=jiecheng(n) %定义 jiecheng函数s=1;for i=1:n s=s*i;end y=s;function zy1x=input('请输入x值:');n=input('请输入n值:');m=1;i=0:n;for m=m+x.^i/jiecheng(i); %调用上面的公式end m2.编制m文件,等待键盘输入,输入密码123,密码正确,显示输入密码正确,程序结束;否则提示,重新输入。function f=zy2()t=input('Input key(key is 123) ')if t==123 'good'else 'Your are fool,input again' zy2; //从新输入;end3.编制m文件,输入n(正整数),显示所有小于n的质数。function f=myzy31(n)k=sqrt(n);flag=1;for i=2:k; if mod(n,i)==0 flag=0; break; endendf=flag;//判断一个数字是否是素数;function myzy32(n)for i=2:nif myzy31(i)==1//调用myzy31,判断是否是素数,如果是就输出; i else i; //i后面有“;”就是不输出了; endend4.编写一个M函数文件fun_es(x),计算如下函数:,其中参数可以为标量,也可以为向量。在Matlab指令窗口键入如下命令检验该函数: fun_es(3)function f=fun_es(n)f=0.5.*exp(n./3)-n.*n.*sin(n);//use the dot not only adapt to numbers but also matrix 5.下面程序实现什么功能?for n=100:200if rem(n,77)~=0 continueendbreakendn//实现输出在100到200之间第一个被77整除的数字,就是154;6.编写m函数文件求半径为r的圆的面积和周长。function f=myzy6r=input('Input r: ')disp('The aear is :')disp(r*r*pi)disp('The perimeter is')disp(2*pi*r)7.数组[1:99]中非素数(即质数)元素的和//在这个函数中令n=99即可;function myzy32(n)sum=0;function myzy32(n)for i=2:nif myzy31(i)==1//调用myzy31,判断是否是素数,如果是就输出; i sum=sum+i;//求和 else i; //i后面有“;”就是不输出了; endendsum//求和输出;for i=2:nif myzy31(i)==1//调用myzy31,判断是否是素数,如果是就输出; i y=y+1; else i; //i后面有“;”就是不输出了; endend8.从键盘输入若干个数,当输入0时结束输入,求这些数的平均值以及平方和。function myzy8sum=0;sum2=0;n=2;while (n~=0) k=input('input the number(end with 0) : ') sum=k+sum; sum2=k.^2+sum2; n=k;//标志位传递;endsumsum2 //输出;9.输入x,y的值,并将它们的值互换后输出。function myzy8x=input(‘Please input the x: ’)y=input(‘Please input the y: ’)t=x; //保护数据;x=y;y=t;disp(“after change :”)xy //输出;10.利用rand产生10个随机数,利用for循环对其进行排序(从大到小)。function myzy10 //输入10即可;k=input('Input the number of randn numbers: ')x=randn(1,k)temp=0;for j=1:k-1; for i=k-j:k-1; if x(i)

4d91c43bfc72ca913299809b07b4968f.gif  天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值