matlab操作题答案.docx

上传人:b****8 文档编号:9986528 上传时间:2023-02-07 格式:DOCX 页数:70 大小:166.74KB
下载 相关 举报
matlab操作题答案.docx_第1页
第1页 / 共70页
matlab操作题答案.docx_第2页
第2页 / 共70页
matlab操作题答案.docx_第3页
第3页 / 共70页
matlab操作题答案.docx_第4页
第4页 / 共70页
matlab操作题答案.docx_第5页
第5页 / 共70页
点击查看更多>>
下载资源
资源描述

matlab操作题答案.docx

《matlab操作题答案.docx》由会员分享,可在线阅读,更多相关《matlab操作题答案.docx(70页珍藏版)》请在冰豆网上搜索。

matlab操作题答案.docx

matlab操作题答案

P.28ex2.1数值变量的运算

>>formatshorte

>>clear

>>muw0=1.785e-3;

>>a=0.03368;

>>b=0.000221;

>>t=0:

20:

80;

>>muw=muw0./(1+a*t+b*t.^2)

muw=

1.7850e-0031.0131e-0036.6092e-0044.6772e-0043.4940e-004

p.31ex2.2数值驻足和字符串转换

>>a=[1:

5];

>>b=num2str(a);

>>a

a=

12345

>>b

b=

12345

>>b*2

ans=

986464100646410264641046464106

P.44ex2.9比较用左除和右除分别求解恰定方程(线性方程组如果方程数等于未知数个数,叫做恰定方程组,如果方程多于未知数,叫做超定方程组,反之称为欠定。

换个角度说,系数矩阵如果是方阵,就是恰定方程组)的解

见课本

P.48ex2.14计算矩阵的指数并比较不同函数的结果

>>b=magic(3);

>>expm(b)

ans=

1.0e+006*

1.08981.08961.0897

1.08961.08971.0897

1.08961.08971.0897

>>expmdemo2(b)

ans=

1.0e+006*

1.08981.08961.0897

1.08961.08971.0897

1.08961.08971.0897

>>expm1(b)

ans=

1.0e+003*

2.98000.00170.4024

0.01910.14741.0956

0.05368.10210.0064

>>expmdemo3(b)

ans=

1.0e+006*

1.08981.08961.0897

1.08961.08971.0897

1.08961.08971.0897

P50ex2.18计算矩阵的特征值条件数

>>a=rand(3)

a=

0.96490.95720.1419

0.15760.48540.4218

0.97060.80030.9157

>>[V,D,s]=condeig(a)

V=

0.49130.66960.6696

0.3158-0.4476+0.2831i-0.4476-0.2831i

0.8117-0.2332-0.4655i-0.2332+0.4655i

D=

1.814600

00.2757+0.3061i0

000.2757-0.3061i

s=

1.1792

1.2366

1.2366

P62ex2.29矩阵的抽取、三角抽取

>>a=pascal(4)

a=

1111

1234

13610

141020

>>diag(a,-2)

ans=

1

4

>>v=diag(diag(a))

v=

1000

0200

0060

00020

%diag简单来说就是抽取矩阵各对角线上的元素,如上是抽取主对角线以下第二条对角线之元素,其另一功能是建立对角矩阵

>>tril(a)

ans=

1000

1200

1360

141020

>>triu(a)

ans=

1111

0234

00610

00020

%triu&tril用法与diag非常类似,用途是提取下、上三角矩阵

P62ex2.30建立多项式之伴随矩阵

这道题有点凌乱了…….求解释

P64ex2.31数组的幂运算

>>a=[21-3-1;3107;-124-2;10-15];

>>a^3

ans=

32-28-10134

99-12-151239

-149938

51-17-98139

>>a.^3

ans=

81-27-1

2710343

-1864-8

10-1125

P66ex2.32数组之逻辑运算

>>a=[1:

3;4:

6;7:

9];

>>b=[010;101;001];

>>x=5;y=ones(3)*5;

>>x<=a

ans=

000

011

111

%此处小于等于,对a中元素和x注意比较,大者为假为0,不大者为1

>>ab=a&b

ab=

010

101

001

%此处为与运算,就是同真才为真(同为非零数)

>>~b

ans=

101

010

110

%逻辑非运算,即全都非,真变假假变真;还有逻辑或运算,看下面即懂:

>>a|b

ans=

111

111

111

%总结多项式运算的函数:

poly:

Polynomialwithspecifiedroots特征多项式的生成p=poly(a)a为n阶特征矩阵,所得一般为n阶特征多项式;poly2sym数值2符号;polyval求多项式的值;roots求多项式的根;conv多项式的乘法(向量之卷积)conv(p,d);polyder多项式微分;polyfit多项式拟合。

P71ex2.41多项式拟合,用5阶多项式对正弦函数进行最小二乘拟合

>>x=0:

pi/20:

pi/2;

>>y=sin(x);

>>a=polyfit(x,y,5);

>>x1=0:

pi/30:

pi*2;

>>y1=sin(x1);

>>y2=a

(1)*x1.^5+a

(2)*x1.^4+a(3)*x1.^2+a(4)*x1.^2+a(5)*x1+a(6);

>>plot(x1,y1,'b-',x1,y1,'r*')

>>legend('原曲线','拟合曲线')

>>axis([0,7,-1.2,4])

>>axis([0,7,-1.2,1.5])%调整坐标轴显示范围

2.符号运算命名和基本运算法则

P79符号矩阵的运算

>>A=sym('[a,b;c,d]')

A=

[a,b]

[c,d]

>>symsabcd

>>B=[a,b;c,d]

B=

[a,b]

[c,d]

>>B-A

ans=

[0,0]

[0,0]

>>A/B

ans=

[1,0]

[0,1]

>>A^2

ans=

[a^2+b*c,a*b+b*d]

[a*c+c*d,d^2+b*c]

>>A.^2

ans=

[a^2,b^2]

[c^2,d^2]

>>det(A)

ans=

a*d-b*c

%行列式

>>inv(A)

ans=

[d/(a*d-b*c),-b/(a*d-b*c)]

[-c/(a*d-b*c),a/(a*d-b*c)]

%逆

>>rank(A)

ans=

2

%秩

%SUMMARY矩阵的分解:

奇异值分解[U,S,V]=svd(A);特征值分解[V,D]=eig(A);正交分解[Q,R]=qr(A);三角分解[L,U]=lu(A);

P88ex3.7利用函数gradient绘制一个矢量图

>>[x,y]=meshgrid(-2:

.2:

2,-2:

.2:

2);

>>z=x.*exp(-x.^2-y.^2);

>>[px,py]=gradient(z,.2,.2);

>>contour(z),%等高线绘制函数

>>holdon

>>quiver(px,py)%矢量图绘制函数

%绘图SUMMARY1.二维plot不解释;fplot:

绘制y=f(x)图形fplot(fname,lims,’s’);ezplot:

绘制隐函数图形help吧;极坐标polar,对数坐标semilogx,semilogy,loglog;bar条形图,pie饼状图;hist直方图有些疑惑!

;gridon/off:

控制是否画网格线。

boxon/off:

控制是否加边框线。

holdon/off控制是否刷新当前轴及图形

%2.三维:

plot3;meshgrid函数:

产生平面区域内的网格坐标矩阵;mesh画格子;surf面;figure(n)开窗户;subplot:

割图。

3.二维图形函数运用

P98基本绘图命令

>>y=rand(100,1);

>>plot(y)

>>x=rand(100,1);

>>z=x+y.*i;

>>plot(z)

P101ex4.1绘制带有显示属性的二维属性

>>x=1:

0.1*pi:

2*pi;

>>y=sin(x);

>>z=cos(x);

>>plot(x,y,'--k',x,z,'-.rd')

P104ex4.5条状图和矢量图

>>x=1:

10;

>>y=rand(10,1);

>>bar(x,y)

>>x=:

0.1*pi:

2*pi;

>>x=0:

0.1*pi:

2*pi;

>>y=x.*sin(x);

>>feather(x,y)

P104ex4.6函数图形绘制

>>lim=[0,2*pi,-1,1];

>>fplot('[sin(x),cos(x)]',lim)

P105ex4.7绘制饼状图

>>x=[2,4,6,8];

>>pie(x,{'math','english','chinese','music'})

4.三维图形函数应用

P107ex4.9绘制三维螺旋线

>>x=0:

pi/50:

10*pi;

>>y=sin(x);z=cos(x);

>>plot3(x,y,z)

P107ex4.10绘制参数为矩阵的三维图

>>[x,y]=meshgrid(-2:

0.1:

2,-2:

0.1:

2);

>>z=x.*exp(-x.^2-y.^2);

>>plot3(x,y,z)

P109ex4.11使用mesh函数绘制三维面图

>>x=-8:

0.5:

8;y=x';

>>a=ones(size(y))*x;

>>b=y*ones(size(x));

>>c=sqrt(a.^2+b.^2)+eps;

>>z=sin(c)./c;

>>mesh(z)

P110ex4.13meshc函数绘制的三维面图

>>[X,Y]=meshgrid([-4:

0.5:

4]);

>>Z=sqrt(X.^2+Y.^2);

>>meshc(Z)

P111ex4.16绘制三维饼状图

>>clear

>>x=[2,4,6,8];

>>pie(x)

>>pie(x,[0,0,1,0])

>>pie3(x,[0,0,1,0])

>>pie3(x,[0,0,1,1])

P113ex4.19绘制如图柱面图

>>x=0:

pi/20:

pi*3;

>>r=5+cos(x);

>>[a,b,c]=cylinder(r,30);

>>mesh(a,b,c)

P113ex4.20绘制地球表面的气温分布示意图

>>[a,b,c]=sphere(40);

>>t=abs(c);

>>surf(a,b,c,t);

>>axis('equal')

>>axis('square')

>>colormap('hot')

5.图形控制命令

P118ex4.24坐标标注函数应用

>>x=1:

0.1*pi:

2*pi;

>>y=sin(x);

>>plot(x,y)

>>xlabel('x(0-2\pi)')

>>ylabel('y=sin(x)')

>>title('正弦函数','FontSize')

Errorusingtitle(line29)

Incorrectnumberofinputarguments

Errorintitle(line23)

h=title(gca,varargin{:

});

>>title('正弦函数','FontSize',12)

>>title('正弦函数','FontSize',12,'FontWeight',bold)%课本上不知由于版本问题还是什么,与2011b不同,最后尝试用Bold成功解决ADD已解决,用单引号引起bold即可

Undefinedfunctionorvariable'bold'.

>>title('正弦函数','FontSize',12,'FontWeight',Bold)

Undefinedfunctionorvariable'Bold'.

>>title('正弦函数','FontSize',12,'FontWeight','Bold')

>>title('正弦函数','FontSize',12,'FontWeight','Bold','FontName','隶书')

P123ex4.30在同一张途中绘制几个三角函数图

>>x=0:

0.1*pi:

2*pi;

>>y=sin(x);

>>z=cos(x);

>>plot(x,y,'-*')

>>holdon

>>plot(x,z,'-o')

>>plot(x,y+z,'-+')

>>legend('sin(x)','cos(x)','sin(x)+cos(x)',0)

P124ex4.31在4个子图中绘制不同的三角函数

>>x=0:

0.1*pi:

2*pi;

>>subplot(2,2,1);

>>plot(x,sin(x),'-*')

>>title('sin(x)')

>>subplot(2,2,2)

>>plot(x,cos(x),'-o')

>>title('cos(x)')

>>subplot(2,2,3)

>>plot(x,sin(x).*cos(x),'-x')

>>title('sin(x)*cos(x)')

>>subplot(2,2,4)

>>plot(x,sin(x)+cos(x),'-h')

>>title('sin(x)+cos()')

>>title('sin(x)+cos(x)')

%SUMMARYinterp1:

1-Ddatainterpolation(tablelookup)

%yi=interp1(x,Y,xi,method,'extrap')method:

nearest/linear/echip(hermite)/spline,etc

P222ex7.3正弦曲线的差值实例

>>x=0:

0.05:

10;

>>y=sin(x);

>>xi=0:

.125:

10;

>>yi=interp1(x,y,xi);%一维插值

>>plot(x,y,'*',xi,yi)

P227例7.7二次拟合

>>x=[0.5:

0.5:

3.0];

>>y=[1.752.453.814.808.008.60];

>>a=polyfit(x,y,2)%用最小二乘法拟合

a=

0.49001.25010.8560

>>x1=0.5:

0.05:

3.0;

>>y1=a

(1)*x1.^2+a

(2)*x1+a(3);%拟合出的函数

>>plot(x1,y1,'-or',x,y,'-+b')

P228例7.8拟合,用求解矩阵的方法解,求解超定方程

>>xi=19:

6:

44

xi=

1925313743

>>yi=[19.032.349.073.398.8];

>>formatshort

>>a=polyfit(xi,yi,2)

a=

0.0635-0.59327.2811

>>x1=19:

.1:

44;

>>y1=a

(1)*x1.^2+a

(2)*x1+a

(2);%此处发生了一点错误,将a(3)误输为a

(2),后面会有改正

>>plot(x1,y1,'-x')

>>plot(x1,y1,'-')

>>x2=xi.^2;%采用求解矩阵的方法来求解此拟合问题

>>x2=[ones(5,1),x2']

x2=

1361

1625

1961

11369

11849

>>ab=x2\yi'

ab=

-1.3522

0.0540

>>y3=ab

(1)+ab

(2)*x1.^2;

>>holdon;plot(x1,y3,'--g')

>>y1=a

(1)*x1.^2+a

(2)*x1+a(3);

>>plot(x1,y1,'-')%从图中可以看出,两种拟合方法较为吻合

P233例7.10分别用矩形和梯形公式求积分

>>y=inline('exp(-0.5*t).*sin(t+pi/6)');%内联函数

>>d=pi/1000;

>>t=0:

d:

3*pi;

>>nt=length(t)

nt=

3001

>>y1=y(t);

>>sc=cumsum(y1)*d;

>>scf=sc(nt)

scf=

0.9016

>>formatlong

>>scf

scf=

0.901618619310013%矩形方法

>>z=trapz(y1)*d

z=

0.900840276606885%梯形方法

P237ex7.11采用自适应Simpson公式求积分

>>f=inline('x./(x.^2+4)');

>>quad(f,0,1)

ans=

0.111571765994935

P237ex7.12用quadl求积分

>>f=inline('exp(-x/2)');

>>f1=quadl(f,1,3)

f1=

0.7668

>>f2=quad(f,1,3,1e-10)

f2=

0.7668

>>formatlonge

>>f1

f1=

7.668009991284686e-001

>>f2

f2=

7.668009991284349e-001

P2377.12quadlgauss-labatto求积分

>>quadl('exp(-x/2)',1,3)

ans=

0.7668

%求线性方程组的方法一般有两种:

左除求法和linsolve求法

P246ex7.17求线性方程组

>>a=rand(4,4);%生成随机矩阵

>>b=rand(4,1);

>>x=a\b

x=

1.728190838792039e+001

8.395388076704506e-001

-1.590669694986821e+001

1.088276299038511e+000

%此处与书上不同,为生成的随机矩阵

%SUMMARY矩阵左除A\B=A-1*B等效于A*X=B求Xinv(A)注:

.\数组左除A.\BBij/Aij;/:

矩阵右除A/B=A*B-1等效于X*B=A求X

>>formatshort

>>x1=linsolve(a,b)

%SUMMARY用linsolve求解线性方程;用solve、fzero求解非线性方程;

DsolveOrdinarydifferentialequationandsystemsolver,用dsolve求解微分方程;fsolveSolvesystemofnonlinearequations,[x,fval]=fsolve(@myfun,x0,options)%Callsolver

x1=

17.2819

0.8395

-15.9067

1.0883

P246ex7.18对矩阵进行LU分解

>>A=ones(4,4)

A=

1111

1111

1111

1111

>>[l,u]=lu(A)

l=

1000

1100

1010

1001

u=

1111

0000

0000

0000

>>l*u

ans=

1111

1111

1111

1111

P265ex7.39求方程组之符号解

>>[x1,x2]=solve('x1-0.7*sin(x1)-0.2*cos(x2)=0','x2-0.7*cos(x1)+0.2*sin(x2)=0')

x1=

0.52652262191818418730769280519209

x2=

0.50791971903684924497183722688768

%方法一:

用solve求符号解,注意使用[x1,x2]方式调用才可求得具体数值另有不动点迭代法和newton法,见课本p263

>>edit

fc.m

functionf=fc(x)

f

(1)=x

(1)-0.7*sin(x

(1))-0.2*cos(x

(2));

f

(2)=x

(2)-0.7*cos(x

(1))+0.2*sin(x

(2));

f=[f

(1)f

(2)];%编写m文件

>>x0=[0.50.5];

>>fsolve('fc',x0)

Equationsolved.

fsolvecompletedbecausethevectoroffunctionvaluesisnearzero

asmeasuredbythedefaultvalueofthefunctiontolerance,and

theproblemappearsregularasmeasuredbythegradient.

ans=

0.52650.5079%用fsolve求解,显然麻烦很多

P273ex7.42微分方程数值解

>>f=inline('-y+x+1');

>>[x,y]=ode23(f,[0,1],1)

x=

0

0.1000

0.2000

0.3000

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

当前位置:首页 > 农林牧渔 > 林学

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

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