您好,欢迎来到保捱科技网。
搜索
您的当前位置:首页matlab作

matlab作

来源:保捱科技网
文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

习题一

1、试个MATLAB的工作空间中建立以下2个矩阵:A=[1 2]

1B324,求出矩阵A和B

的乘积,并将结果赋给变量C。

>> A=[1 2];B=[1 2;3 4]; >> C=A*B C =

7 10

2、 利用MATLAB提供的帮助信息,了解inv命令的调用格式。 >> help inv

3、使用help命令查询函数plot的功能以及调用方法,然后利用plot命令绘制函数

. y=sin(x)的图形,其中0x>>help plot

>>x=0:pi/1000:pi; >>y=sin(x); >>plot(x,y) >>xlabel('x');

>>ylabel('y=sin(x)'); >>title('正弦函数');

4、 试用不同的方法建立数组A=[1 1.5 2.0 2.5 3.0],了解怎样访问数组A的第二个元素,然后将其更换为4.0。

建立数组:>>A=[1 1.5 2.0 2.5 3.0] >>A=1:0.5:3.0 访问元素: >> A(2) ans =

1.5000 更换元素: >>A(2)=4.0 A =

1.0000 4.0000 2.0000 2.5000 3.0000 5、 已知矩阵

1B324,试用MATLAB提供的关系运算命令将B中所有大于2的元素全改

为0。

第一种:

>> B=[1 2;3 4]; >> B(find(B>2))=0 B =

1 2 0 0

1文档收集于互联网,如有不妥请联系删除.

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

第二种:

>> B=[1 2;3 4]; >> for m=1:2 for n=1:2

if B(m,n)>2 B(m,n)=0; end end end >> B B =

1 2 0 0 6、已知矩阵

1A47258369,试求矩阵A的左右翻转矩阵,上下翻转矩阵,然后在工作空

间中利用size命令查看矩阵A的大小。

(1)生成矩阵A >> A=[1:9];

>> A=reshape(A,3,3) A =

1 4 7 2 5 8 3 6 9 (2)左右翻转: >> fliplr(A) ans =

7 4 1 8 5 2 9 6 3 (3)上下翻转: >> flipud(A) ans =

3 6 9 2 5 8 1 4 7 (4)查看矩阵A的大小: >> size(A) ans =

3 3

2文档收集于互联网,如有不妥请联系删除.

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

7、已知矩阵

1B324,试求其转置、逆、迹、特征值、特征向量和B对应的行列式的

值。

>> B=[1:4];

B=reshape(B,2,2) %生成矩阵B B =

1 3 2 4 >> B' %矩阵转置 ans =

1 2 3 4

>> inv(B) %矩阵的逆运算 ans =

-2.0000 1.5000

1.0000 -0.5000a=trace(B) %矩阵的迹 a = 5

>> [x,y]=eig(B) %矩阵的特征值y,特征向量x x =

-0.9094 -0.5658 0.4160 -0.8246 y =

-0.3723 0 0 5.3723

>> V=det(B) %矩阵的行列式 V = -2

8、分别建立一个33阶的单位阵、随机阵和魔方阵。 >> A=eye(3) %生成3*3阶的单位矩阵A A =

1 0 0 0 1 0 0 0 1

>> B=rand(3) %生成3*3阶的随机矩阵B B =

0.6596 0.90 0.4324 0.5186 0.8003 0.8253

0.9730 0.4538 0.0835

>> C=magic(3) %生成3*3阶的魔方矩阵C C =

3文档收集于互联网,如有不妥请联系删除.

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

8 1 6 3 5 7 4 9 2

232ax()x2x2b()xxx3x19、已知多项式,。试求两个多项式的和与乘积。

>> A=[1 2 -2];B=[1 1 -3 1];

>> a=poly2sym(A),b=poly2sym(B) a =

x^2 + 2*x - 2 b =

x^3 + x^2 - 3*x + 1 >> c=a+b c =

x^3 + 2*x^2 - x - 1

>> d=conv(A,B);poly2sym(d) ans =

x^5 + 3*x^4 - 3*x^3 - 7*x^2 + 8*x - 2 10.复数

z6z34i,z12i,z2e123表达,及计算>>

iz1zz32。

>> z1=3+4*i;z2=1+2*i;z3=2*exp(pi/6*i); >> z=z1*z2/z3 z =

0.3349 + 5.5801i

11、产生1×5的均布随机数组,进行如下操作:1)寻访数组的第三个元素;2)寻访

数组的第一、二、五个元素组成的子数组;3)寻访前三个元素组成的子数组;4)寻访除前2个元素外的全部其他元素。

>> rand('state',0) %产生的随机数都与第一次运行产生的相同 >> A=rand(1,5) %产生1×5的均布随机数组 A =

0.9501 0.2311 0.6068 0.4860 0.13 >> A(3) %寻访数组 x 的第三个元素 ans =

0.6068

>> A([1 2 5]) %寻访数组 x 的第一、二、五个元素组成的子数组 ans =

0.9501 0.2311 0.13

>> A(1:3) %寻访前三个元素组成的子数组 ans =

4文档收集于互联网,如有不妥请联系删除.

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

0.9501 0.2311 0.6068

>> A(3:end) %寻访除前 2 个元素外的全部其他元素 ans =

0.6068 0.4860 0.13 12、试用两种方法用MATLAB计算第一种:

>> nthroot(-8,3) ans =

-2 第二种: >> syms x

solve('x^3+8',x) ans =

-2 1 - 3^(1/2)*i 1 + 3^(1/2)*i 第三种: >> x=-8;

sign(x)*abs(x).^(1/3) ans = -2

2(s2)(s4)(s1)3ss113、求的“商”及“余”多项式。

38

>> a=[1 0 2];b=[1 4];c=[1 1];d=[1 0 1 1]; e=conv(a,b);f=conv(e,c);

>> a=[1 0 2];b=[1 4];c=[1 1];d=[1 0 1 1]; >> e=conv(a,b);f=conv(e,c);

>> [k,r]=deconv(f,d) %k是商,r是余式 k =

1 5 r =

0 0 5 4 3

14、求方程 x^4+7x^3 +9x-20=0的全部根。 第一种方法:

>> p=[1 7 0 9 -20]; roots(p) ans =

-7.2254 -0.4286 + 1.5405i -0.4286 - 1.5405i

5文档收集于互联网,如有不妥请联系删除.

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

1.0826 第二种方法: >> compan(p) ans =

-7 0 -9 20 1 0 0 0 0 1 0 0 0 0 1 0 >> eig(ans) ans =

-7.2254 -0.4286 + 1.5405i -0.4286 - 1.5405i 1.0826

15、今有多项式P1(x)=x4-2x+1,P2(x)=x2+4x-0.5,要求先求得P(x)=P1(x)+P2(x),

然后计算xi=0.2*i各点上的P(xi)(i=0,1,2,…,5)值。 >> a=[1 0 0 -2 1];b=[1 4 -0.5]; >> p1=poly2sym(a); p2=poly2sym(b); >> p=p1+p2 p =

x^4 + x^2 + 2*x + 1/2 >> P=sym2poly(p); >> i=0:5;xi=0.2*i; >> polyval(P,xi) ans =

0.5000 0.9416 1.4856 2.16 3.1496 4.5000 16、已知一线性方程组如下所示: 3x1x2x33.6x12x24x32.1x14x25x31.4,试求其结果。

>> A=[3 1 -1;1 2 4;-1 4 5]; B=[3.6 2.1 -1.4]; B/A ans =

1.4818 -0.4606 0.3848 习题二

1、编制一个函数,使得该函数能对输入的两个数值进行比较,并返回其中的最小值。 function y=min(m,n) if m6文档收集于互联网,如有不妥请联系删除.

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

else y=n; end

2、试编一个m程序,将一维数组x中的N个数按颠倒的次序重新存储。如N=5,原来x

为:x=[ 1 3 5 7 9 ]而经过颠倒处理后x中数据的次序应该为:x=[ 9 7 5 3 1 ] function temp(x) if(nargin==0)

error('没有参数'); elseif(nargin>1)

error('参数太多'); end

len=length(x); for i=1:len/2 tmp=x(i);

x(i)=x(len-i+1); x(len-i+1)=tmp; end x

3、编制一个m程序,计算阶乘n!= 1×2×3×…×n function y=jiecheng(N) if N<0

error('N should be positive or zero'); end

if N==0|N==1 y=1; else

y=N*jiecheng(N-1); end

4.利用循环语句进行程序设计:假设定义m×n的矩阵A。判断矩阵A的第1列元素是否为0,若全为0,则从矩阵A中删除第1列 function B=liu(A) [m,n]=size(A); b=0; a=1;

while a<=m

if A(a,1)==0 b=b+1; end a=a+1; end if b==m

7文档收集于互联网,如有不妥请联系删除.

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

A(:,1)=[]; B=A; else B=A; end 5、 利用循环语句进行程序设计:在区间[-2,-0.75]内,步长为0.25,对函数y=f(x)=1+1/x求值,并列表。将所得x值和y值分别存入向量r和s中。 function [r,s]=fun a=0; x=-2;

while x<=-0.75 y=1+1/x; a=a+1; r(a)=x; s(a)=y; x=x+0.25; end

运行结果: >> [r,s]=fun r =

-2.0000 -1.7500 -1.5000 -1.2500 -1.0000 -0.7500 s =

0.5000 0.4286 0.3333 0.2000 0 -0.3333

ki06、 编程计算

编制m程序:

function k=fun1(x) k=0;

for i=0:x

k=k+2^i; end 计算:

>> fun(63) ans =

1.8447e+019

7.写一个MATLAB 小程序 findN01.m,求出最小的 n 值,使得 n! > realmax。请问 n 的值是多少?此时 (n-1)! 的值又是多少? function y=findN01(realmax) maxN = 1000; for n=1:maxN

632i8文档收集于互联网,如有不妥请联系删除.

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

value = prod(1:n); if value>realmax break; end end

fprintf('n = %d\\n', n);

fprintf('(n-1)! = %d\\n', prod(1:n-1)); 习题三

1、用subplot命令在同一图形输出窗口中绘制以下4个函数的图形:

2xsinx,x[1,1],yyxx,[0,3],yx,x[0,1.5],

ytanx,x[0,1.3]。

>> clear

>> subplot(2,2,1); >> x=1:0.001:3;

>> plot(x,x,'-r*'); >> subplot(2, 2,2); >> x=-1:0.001:1;

>> plot(x,x.*sin(x),'-r*'); >> subplot(2, 2,3); >> x=0:0.001:1.5;

>> plot(x,x.^2,'-r*'); >> subplot(2,2,4); >> x=0:0.001:1.3; >>plot(x,tan(x),'-r*');

9文档收集于互联网,如有不妥请联系删除.

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

0.2xyesinxx[0,5]区间上的阶梯图。

2、绘制曲线在 >>x=0:0.01*pi:5*pi; y=exp(-0.2*x).*sin(x);

plot(x,y);axis([0,0.2*pi,0,0.2*pi]); hold on

stairs(x,y,'r');

3、试绘制以极坐标形式表示的图形:>> x=0:0.001*pi:8*pi; >> p=cos(5*x/4)+1/3; >> polar(x,p,'-r')

cos1543,其中

的范围为

[0,8]。

3t及其它的包络线y0e4、画出衰减振荡曲线yesin是[0,4]。 >> t=0:0.001*pi:4*pi;

t3t3。t的取值范围

10文档收集于互联网,如有不妥请联系删除.

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

y0=exp(-t/3);

>> y=y0.*sin(3*t);

>> plot(t,y0,'-r',t,y,'-b');

>> legend('包络线','衰减振荡曲线');

z5、画出

sin(x2y2)x2y2所表示的三维曲面。

x,y的取值范围是[8,8]。

>> x=-8:0.001:8; >> y=-8:0.001:8;

>> m=sqrt(x.^2+y.^2); >> z=sin(m)./m;

>> plot3(x,y,z,'-r');

6、在[0 2π]范围内绘制二维曲线图y=sin(x)*cos(5x)。 >> x=0:0.01*pi:2*pi; >> y=sin(x).*cos(5*x); >> plot(x,y,'-rx')

。 7、在[0 2π]范围内绘制以Y轴为对数的二维曲线图。

11文档收集于互联网,如有不妥请联系删除.

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

y=|1000sin(4x)|+1 >> x=0:0.001*pi:2*pi;

>> y=abs(1000*sin(4*x))+1; >> semilogy(x,y,'-*r')

8、绘制z=sin(x)*cos(y)的三维网格和三维曲面图,x,y变化范围均为 [0 2π]。 >>x=[0:0.1:2*pi]; >>y=[0:0.1:2*pi]; >>z=sin(y')*cos(x); >>mesh(x,y,z);

>>xlabel('x-axis'),ylabel('y-axis'),zlabel('z-label'); >>x=0:0.1:2*pi; >>y=0:0.1:2*pi;

>>[x,y]=meshgrid(x,y); >>z=sin(x).*cos(y); >>surf(x,y,z);

>>xlabel('x-axis'),ylabel('y-axis'),zlabel('z-label');

2sinx9、用简短的M AT L A B命令在一个图上绘制在0≤x≤7范围内的sin(2x)、 和

cosx2三条曲线,并将其一一标明。

>> clear

>> x=0:0.01*pi:7; >> y=sin(2*x); >> z=sin(x.^2); >> m=cos(x.^2); >> plot(x,y,'-r*') >> hold on

>> plot(x,z,'-.bo') >> plot(x,m,'--')

>> legend('sin(2x)','sin(x^2)','cos(x^2)') >> hold off

10、在极坐标系中绘制曲线 >>t=0:0.01*pi:8*pi;

>>r=exp(cos(t))-2*cos(4*t)+sin(t/12).^5; >>polar(t,r,'-r') 习题四

a11a12Aa21a22的行列式值、逆和特征根 1、求矩阵

>> syms a11 a12 a21 a22;

>> A=[a11 a12;a21 a22];

12文档收集于互联网,如有不妥请联系删除.

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

>> B=det(A) B =

a11*a22 - a12*a21 >> inv(A) ans =

[ a22/(a11*a22 - a12*a21), -a12/(a11*a22 - a12*a21)] [ -a21/(a11*a22 - a12*a21), a11/(a11*a22 - a12*a21)] >> [x,y]=eig(A) x =

[ (a11/2 + a22/2 - (a11^2 - 2*a11*a22 + a22^2 + 4*a12*a21)^(1/2)/2)/a21 - a22/a21, (a11/2 + a22/2 + (a11^2 - 2*a11*a22 + a22^2 + 4*a12*a21)^(1/2)/2)/a21 - a22/a21]

[

1, 1] y =

[ a11/2 + a22/2 - (a11^2 - 2*a11*a22 + a22^2 + 4*a12*a21)^(1/2)/2, 0]

[ 0, a11/2 + a22/2 + (a11^2 - 2*a11*a22 + a22^2 + 4*a12*a21)^(1/2)/2]

2、验证积分

/2/2AedtAitsin22。

用matlab计算左边的:

>> syms A w t m;

>> Y=int('A*exp(-w*t*i)',t,-1*m/2,m/2) %这里就用m表示 Y =

(2*A*sin((m*w)/2))/w 右边化简即得证。 3、求t0不知道在matlab中如何输入 在

tt1k31(1)kk(2k1)2k1,

>> syms t k;

>> s=symsum([t,k^3],t,0,t-1) s =

[ (t*(t - 1))/2, k^3*t] >> sym k;

>>s=symsum([1/(2*k-1)^2 (-1)^k/k],k,1,inf) s =

13文档收集于互联网,如有不妥请联系删除.

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

[ pi^2/8, -log(2)]

dadxtcosx4、 求

dtlnx、dt322at3tcosxlnx

>> syms a x t;

>> A=[a,t^3;t*cos(x),log(x)]; >> diff(A,'x') %微分一次 ans =

[ 0, 0] [ -t*sin(x), 1/x]

>> diff(A,'x',2) %对表达式A微分2次 ans =

[ 0, 0] [ -t*cos(x), -1/x^2]

axbx2dx1sinx 5.求x>> syms a b x;

>> A=[a*x,b*x.^2;1/x,sin(x)]; >> int(A,x) ans =

[ (a*x^2)/2, (b*x^3)/3] [ log(x), -cos(x)] 6、 求

x01dtlnt

>>syms x

>>y=int(1/log(t)','t',1,x) >>diff(y,x)

npndq,ndqpq10,dp,qpn8d12247、求线性方程

组的解。

>> A=[1,1/2,1/2,-1;1 1 -1 1;1 -1/4 -1 1;-8 -1 1 1]; >> B=[0 10 0 1]'; >> A\\B ans =

1.0000

14文档收集于互联网,如有不妥请联系删除.

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

8.0000 8.0000 9.0000

x(x2)2的解。 8、求

>> syms x ; y=(x+2).^x-2; S=solve(y,x) S =

matrix([[0.1]])

y^2vzw0zw09、求方程组u,y关于

y,z的解。

>> syms u y v z w;

>> m=u*y^2+v*z+w; >> n=y+z+w;

>> q=solve(m,n,'y','z') q =

y: [2x1 sym] z: [2x1 sym] >> q.y ans =

(v + 2*u*w + (v^2 + 4*u*w*v - 4*u*w)^(1/2))/(2*u) - w (v + 2*u*w - (v^2 + 4*u*w*v - 4*u*w)^(1/2))/(2*u) - w >> q.z ans =

-(v + 2*u*w + (v^2 + 4*u*w*v - 4*u*w)^(1/2))/(2*u) -(v + 2*u*w - (v^2 + 4*u*w*v - 4*u*w)^(1/2))/(2*u)

15文档收集于互联网,如有不妥请联系删除.

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- baoaiwan.cn 版权所有 赣ICP备2024042794号-3

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务