Matlab上机练习二答案剖析Word文档下载推荐.docx

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

Matlab上机练习二答案剖析Word文档下载推荐.docx

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

Matlab上机练习二答案剖析Word文档下载推荐.docx

a<

a==b

000

a~=b

111

5、

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

相当于a=[11011]。

6、角度

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

x=[304560];

x1=x/180*pi;

sin(x1)

0.50000.70710.8660

cos(x1)

0.86600.70710.5000

tan(x1)

0.57741.00001.7321

cot(x1)

1.73211.00000.5774

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

b=[2.45686.39823.93758.5042];

round(b)

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)

0.00620.0400-0.0106

-0.00460.01690.0030

0.01680.02090.0150

inv(C2)

Warning:

Matrixisclosetosingularorbadlyscaled.

Resultsmaybeinaccurate.RCOND=8.997019e-019.

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,'

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、

int((sqrt((9-x^2)^3)/x^6),x)

16、

int(x+x^3,x,1,2)

17、求级数的和:

sym(‘n’);

symsum(n+2/2^n,n,1,inf)

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

y=sym('

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)>

f=(1-cos(x^2+y^2))*exp(x^2+y^2)/(x^2+y^2);

0

20、已知参数方程

,试求出

symst;

x=log(cos(t));

y=cos(t)-t*sin(t);

diff(y,t)/diff(x,t)

-(-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)

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试求出下面的极限。

(2)

symskn;

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

1/2

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

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

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;

在工作空间中求y值

y=Cbb(100)

y=

1.6350

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

+n<

2000时的最大n值

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

functionk=Dbb(n)

f=0;

whilef<

n

f=f+k;

k=k-2;

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

Dbb(2000)

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;

在工作空间中求K

Fbb.m

I

I=

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种方法将图画在同一个窗口中

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('

标题'

sinx*cosx'

sin2x*cosx'

("

加示例"

怎样改变线宽?

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

plot(x,y,'

markeredge'

g'

markerfacecolor'

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

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中每一列中的最大值,最小值

b=max(a)

c=min(a)

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

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]

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

此整数除以3余1'

此整数除以3余2'

SWITCH:

switch(b)

case0

case1

case2

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

当前位置:首页 > 外语学习 > 英语学习

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

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