Matlab上机练习二答案剖析.docx

上传人:b****5 文档编号:4656675 上传时间:2022-12-07 格式:DOCX 页数:17 大小:89.06KB
下载 相关 举报
Matlab上机练习二答案剖析.docx_第1页
第1页 / 共17页
Matlab上机练习二答案剖析.docx_第2页
第2页 / 共17页
Matlab上机练习二答案剖析.docx_第3页
第3页 / 共17页
Matlab上机练习二答案剖析.docx_第4页
第4页 / 共17页
Matlab上机练习二答案剖析.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

Matlab上机练习二答案剖析.docx

《Matlab上机练习二答案剖析.docx》由会员分享,可在线阅读,更多相关《Matlab上机练习二答案剖析.docx(17页珍藏版)》请在冰豆网上搜索。

Matlab上机练习二答案剖析.docx

Matlab上机练习二答案剖析

1、求

的共轭转置。

>>x=[4+8i3+5i2-7i1+4i7-5i;3+2i7-6i9+4i3-9i4+4i];

>>x’

ans=

4.0000-8.0000i3.0000-2.0000i

3.0000-5.0000i7.0000+6.0000i

2.0000+7.0000i9.0000-4.0000i

1.0000-4.0000i3.0000+9.0000i

7.0000+5.0000i4.0000-4.0000i

2、计算

的数组乘积。

>>a=[693;275];

>>b=[241;468];

>>a.*b

ans=

12363

84240

3、对于

,如果

,求解X。

>>A=[492;764;357];

>>B=[372628]’;

>>X=A\B

X=

-0.5118

4.0427

1.3318

4、

,观察a与b之间的六种关系运算的结果。

>>a=[123;456];

>>b=[8–74;362];

>>a>b

ans=

010

101

>>a>=b

ans=

010

101

>>a

ans=

101

010

>>a<=b

ans=

101

010

>>a==b

ans=

000

000

>>a~=b

ans=

111

111

5、

,在进行逻辑运算时,a相当于什么样的逻辑量。

相当于a=[11011]。

6、角度

,求x的正弦、余弦、正切和余切。

>>x=[304560];

>>x1=x/180*pi;

>>sin(x1)

ans=

0.50000.70710.8660

>>cos(x1)

ans=

0.86600.70710.5000

>>tan(x1)

ans=

0.57741.00001.7321

>>cot(x1)

ans=

1.73211.00000.5774

7、用四舍五入的方法将数组[2.45686.39823.93758.5042]取整。

>>b=[2.45686.39823.93758.5042];

>>round(b)

ans=

2649

8、设

,求C1=A*B’;C2=A’*B;C3=A.*B,并求上述所有方阵的逆阵。

>>A=[14813;-36-5-9;2-7-12-8];

>>B=[543-2;6-23-8;-13-97];

>>C1=A*B'

C1=

19-8230

12273

-385429

>>C2=A'*B

C2=

-1516-2436

63-1793-105

226117-60

194684-10

>>C3=A.*B

C3=

51624-26

-18-12-1572

-2-21108-56

>>inv(C1)

ans=

0.00620.0400-0.0106

-0.00460.01690.0030

0.01680.02090.0150

>>inv(C2)

Warning:

Matrixisclosetosingularorbadlyscaled.

Resultsmaybeinaccurate.RCOND=8.997019e-019.

ans=

1.0e+015*

-0.9553-0.2391-0.19970.2700

0.96670.24200.2021-0.2732

-0.4473-0.1120-0.09350.1264

-1.1259-0.2818-0.23530.3182

>>inv(C3)

?

?

?

Errorusing==>inv

Matrixmustbesquare.

9、设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')

10、设f(x)=x5-4x4+3x2-2x+6

(1)在x=[-2,8]之间取100个点,画出曲线,看它有几个过零点。

(提示:

用polyval函数)

>>x=linspace(2,8,100);

>>y=polyval([10-43-26],x);

>>plot(x,y,'b',x,0,'y')

(2)用roots函数求此多项式的根。

t=[10-43-26]

p=roots(t)

12、求解多项式x3-7x2+2x+40的根。

>>r=[1-7240];

>>p=roots(r);

-0.2151

0.4459

0.7949

0.2707

13、符号函数绘图法绘制函数x=sin(3t)cos(t),y=sin(3t)sin(t)的图形,t的变化范围为[0,2]。

>>symst

>>ezplot(sin(3*t)*cos(t),sin(3*t)*sin(t),[0,pi])

 

14、设

x=sym('x');y=(sin(x))^4+(cos(x))^4;diff(y,10)

15、

x=sym('x');int((sqrt((9-x^2)^3)/x^6),x)

16、

x=sym('x');int(x+x^3,x,1,2)

17、求级数的和:

sym(‘n’);symsum(n+2/2^n,n,1,inf)

18、利用函数int计算二重不定积分

x=sym('x');y=sym('y');z=(x+y)*exp(-x*y);a=int(z,x);int(a,y)

19、试求出如下极限。

(1)

(2)

(1)>>symsx;f=(3^x+9^x)^(1/x);l=limit(f,x,inf)

ans=

9

(2)>>symsxy;f=x*y/(sqrt(x*y+1)-1);limit(limit(f,x,0),y,0)

ans=

2

(3)>>symsxy;f=(1-cos(x^2+y^2))*exp(x^2+y^2)/(x^2+y^2);limit(limit(f,x,0),y,0)

ans=

0

20、已知参数方程

,试求出

>>symst;x=log(cos(t));y=cos(t)-t*sin(t);diff(y,t)/diff(x,t)

ans=

-(-2*sin(t)-t*cos(t))/sin(t)*cos(t)

>>f=diff(y,t,2)/diff(x,t,2);subs(f,t,sym(pi)/3)

ans=

3/8-1/24*pi*3^(1/2)

21、假设

,试求

>>symsxyt

>>s=int(exp(-t^2),t,0,x*y);

>>x/y*diff(f,x,2)-2*diff(diff(f,x),y)+diff(f,y,2)

ans=2*x^2*y^2*exp(-x^2*y^2)-2*exp(-x^2*y^2)-2*x^3*y*exp(-x^2*y^2)

 

22试求出下面的极限。

(1)

(2)

>>symskn;symsum(1/((2*k)^2-1),k,1,inf)

ans=

1/2

>>limit(symsum(1/((2*k)^2-1),k,1,n),n,inf)

ans=

1/2

(2)

>>limit(n*symsum(1/(n^2+k*pi),k,1,n),n,inf)

ans=

1

23、假设一曲线数据点为x=0:

2:

4*piy=sin(x).*exp(-x/5)

试将x的间距调成0.1,并用下列方法进行内插:

(1)线性内插法(method=’linear’)

(2)样条内插法(method=’spline’)

(3)三次多项式内插法(method=’cubic’)

(4)多项式拟合法:

直接利用6次多项式去通过7个数据点

请将这些内插法的结果及原先的数据点画在同一个图上

25、阅读以下程序并在指定位置上写注释(6分)

t=(0:

0.02:

2)*pi;

x=sin(t);y=cos(t);z=cos(2*t);

plot3(x,y,z,'r-',x,y,z,'bd')%___

(1)_绘制一条红色连续曲线和蓝色菱形离散点

view([-82,58])%___

(2)__以方位角-82度,俯角58度观察视图

boxon%显示坐标轴的矩形框

legend('图形','视角')%__(3)_标注图例______

holdon%__(4)_保持图形_____

x=-4:

4;y=x;

[X,Y]=meshgrid(x,y);%__(5)_生成平面网格坐标矩阵__

Z=X.^2+Y.^2;

surf(X,Y,Z);%__(6)_绘制三维曲面_

 

26、编写一个M函数文件fun_es(x),计算如下函数:

,其中参数可以为标量,也可以为向量。

在Matlab指令窗口键入如下命令检验该函数:

fun_es(3)

functionfun_es(x)

y=0.5.*exp(x./3)-x.^2.*sin(x)

27、编写m函数文件求半径为r的圆的面积和周长。

functionf=circle(r)

S=pi*r^2

L=2*pi*r

x,y

Matlab上机实验四

28、编制m文件,等待键盘输入,输入密码123,密码正确,显示输入密码正确,程序结束;否则提示,重新输入。

functionf=zy2()

t=input('Inputkey(keyis123)')

ift==123

'good'

else

'Youarefool,inputagain'

zy2;//从新输入;

end

4.3已知y=

当n=100时,求y的值

步骤:

建立函数,命名为Cbb.m求平方倒数的和。

其程序如下

functionF=Cbb(n)

F=0;k=1;

whilek<=n

F=F+(1/k)/k;

k=k+1;

end

end

在工作空间中求y值

y=Cbb(100)

y=

1.6350

4.5编制程序,计算1+2+

+n<2000时的最大n值

步骤:

建立函数文件Dbb.m,求累加和小于n的最大数,使n=2000程序如下

functionk=Dbb(n)

k=1;

f=0;

whilef

f=f+k;

k=k+1;

end

k=k-2;

end

将2000作为输入值,求n.在工作空间中输入如下:

Dbb(2000)

ans=

62

4.6分别用for和while循环结构编写程序,求出K=

分别用for和while循环结构编写命令文件Ebb,Fbb.并在工作空间中求K

Ebb程序如下

f=1;

J

(1)=1;

fori=1:

63

J(i+1)=J(i)*2;

f=f+J(i+1);

End

求K程序:

Ebb.m

f

f=

1.8447e+019

Fbb程序如下

I=1;

H=1;

i=1;

whilei<=63

H=H*2;

I=I+H;

i=i+1;

end

在工作空间中求K

Fbb.m

I

I=

1.8447e+019

1.倘若要是生成一个4行5列的矩阵

a=rand(4,5)

2.倘若要是对x进行赋值,从5到25,间隔是0.1

x=5:

0.1:

25;

倘若要是对x进行赋值,从2到20,中间间隔100个点

x=linspace(2,20,100);

4.用3种方法将图画在同一个窗口中

x=5:

0.1:

25;

y1=sin(x).*cos(2*x);

y2=sin(2*x).*cos(x);

plot(x,y1,x,y2)

有一点必须注意:

在式子与式子之间,必须要用点乘

要想对所画的图形进行修饰,可以用以下的语句,要点是必须是先画出图形,再写有关对图形修饰的语句

plot(x,y1,x,y2);

plot(x,y1,'r--',x,y2,'b-.');

xlabel('横坐标');

title('标题');

legend('sinx*cosx','sin2x*cosx');("加示例")

怎样改变线宽?

以及怎样给一个中间空着的正方形的边缘及内部填充颜色

plot(x,y,'markeredge','g');

plot(x,y,'markerfacecolor','b');

5.关于三维图的画法

饼图pie

火柴杆图stem(x,y)

阶梯图

6.关于排序问题

a=rand(4,5);随机生成4*5的矩阵

sort(a);按列排序,且每列由上到下是由小到大

sort(a,1);按列排序,且每列由上到下是由小到大

sort(a,2);按行排序,且每行由左到右是由小到大

倘若想要改变由大到小还是想改变由小到大,需要用到

增长ascend

减小descend

例如:

按行进行排序,且每一行自左至右是递减的,即:

按照行从高到低排序

a=[123;456;789]

sort(a,2,'descend')

a=

123

456

789

ans=

321

654

987

7.关于矩阵问题

求矩阵中每一列的平均值

mean(a)

mean(a,1)

求矩阵中每一行的平均值

mean(a,2)

从矩阵a中找出最大值

max(max(a))

内层的max相当于找出每一列的最大值,外层的max相当于找出每一列最大值的最大值

或者

a=rand(3,4)

max(a(:

))即a的所有行,所有列

倘若对矩阵a前两行的2,3,4列求最大值

max(a(1:

2,2:

4))

求矩阵a的行列式值|a|

b=det(a)det语句是求n*n的行列式的值

求矩阵a的逆矩阵

b=inv(a)inv是矩阵求逆的意思

求矩阵a的转置

b=a'

对于矩阵a:

求出矩阵a中每一列中的最大值,最小值

a=[123;456;789]

b=max(a)

c=min(a)

求出矩阵a中每一行中的最大值,最小值

a=[123;456;789]

b=max(a,[],2)

c=min(a,[],2)

8.关于取整问题

a=5/2

b=ceil(a)向大取

c=floor(a)向小取

9.关于多形式的乘法和除法

例如:

求x2+2x+3与4x2+5x+6的乘积

a=[123]

b=[456]

c=conv(a,b)

求x2+2x+3除以4x2+5x+6

a=[123]

b=[456]

c=deconv(a,b)

10.关于矩阵确定位置的问题

例如:

找出矩阵a的最大值,并确定其位置

a=rand(3,4)

[x,y]=max(a)

11.Matlab的函数是由function语句引导的,函数的基本结构是:

function[返回变量列表]=函数名(输入变量列表)

倘若有一个输入,一个输出

functiony=sum(a)

倘若有两个输入,两个输出,则形式为

function[m,n]=hanshu(a,b)

例如:

function[x,y]=hanshu(a,b);

x=a+b;

y=a*b;

执行时,需要在CommandWindow中敲入

x=2;

y=3;

[m,n]=hanshu(x,y)

12.

一个整数除以3只有3种情况,要么整除,要么余1,要么余2.

若整除,输出此整数是3的倍数

若余1,输出此整数除以3余1

若余2,输出此整数除以3余2

请用两种条件语句写一个函数(一个是IF一个是SWITCH)

IF:

a=input('请输入一个整数');

b=mod(a,3);求余函数

ifb==0

disp('此整数是3的倍数');

elseifb==1

disp('此整数除以3余1');

else

disp('此整数除以3余2');

end

SWITCH:

a=input('请输入一个整数');

b=mod(a,3);

switch(b)

case0

disp('此整数是3的倍数');

case1

disp('此整数除以3余1');

case2

disp('此整数除以3余2');

end

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 高中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1