MATLAB语言基础与应用(第二版)第5章 习题答案

第5章习题与答案

5.1用矩阵三角分解方法解方程组

1231231

23214453186920

x x x x x x x x x +-=⎧⎪

-+=⎨⎪+-=⎩ 解答:

>>A=[2 1 -1;4 -1 3;6 9 -1] A =

2 1 -1 4 -1

3 6 9 -1 >>b=[1

4 18 20]; b =

14 18 20 >> [L, U, P]=lu(A) L =

1.0000 0 0 0.6667 1.0000 0 0.3333 0.2857 1.0000 U =

6.0000 9.0000 -1.0000 0 -

7.0000 3.6667 0 0 -1.7143 P =

0 0 1 0 1 0 1 0 0 >> y=backsub(L,P*b’) y =

20.0000 4.6667 6.0000 >> x=backsub(U,y) x =

6.5000 -2.5000 -3.5000 5.2 Cholesky 分解方法解方程组

123121

33235223

3127

x x x x x x x ++=⎧⎪

+=⎨⎪+=⎩ 解答:

>> A=[3 2 3;2 2 0;3 0 12] A =

3 2 3

2 2 0

3 0 12

>> b=[5;3;7]

b =

5

3

7

>> L=chol(A)

L =

1.7321 1.1547 1.7321

0 0.8165 -2.4495

0 0 1.7321

>> y=backsub(L,b)

y =

-11.6871 15.7986 4.0415

>> x=backsub(L',y)

x =

-6.7475 28.8917 49.9399

5.3

解答:

观察数据点图形

>> x=0:0.5:2.5

x =

0 0.5000 1.0000 1.5000 2.0000 2.5000 >> y=[2.0 1.1 0.9 0.6 0.4 0.3]

y =

2.0000 1.1000 0.9000 0.6000 0.4000 0.3000 >> plot(x,y)

图5.1 离

散点分布示意图

从图5.1观察数据点分布,用二次曲线拟合。 >> x=0:0.5:2.5 x =

0 0.5000 1.0000 1.5000 2.0000 2.5000 >> y=[2.0 1.1 0.9 0.6 0.4 0.3] y =

2.0000 1.1000 0.9000 0.6000 0.4000 0.3000 >> plot(x,y)

>> orthpolyfit(x,y,2) ans =

0.2857 -1.3371 1.9000

于是得到的二次拟合曲线方程为2

0.2857 1.3371 1.9y x x =-+ >> xx=-1:0.01:3;

>> pp=orthpolyfit(x,y,2); >> yy=polyval(pp,xx); >> plot(xx,yy) >> hold on

>> scatter(x,y,'k*')

00.51 1.52 2.5

图5.2 二次曲线拟合示意图

5.4已知函数()y f x =的观测数据为

试构造不超过三次的插值多项式,并计算(1)f -的近似值。 解答:

使用MATLAB 工具箱

-1

-0.500.51 1.52

2.53

00.511.522.533.54

图5.3 插值工具箱示意图

Linear model Poly3:

f(x) = p1*x^3 + p2*x^2 + p3*x + p4 Coefficients:

p1 = 0.119 p2 = -0.07143 p3 = -2.619 p4 = 1 >> p=[p1 p2 p3 p4]; >> polyval(p,-1) ans = 3.4286

即(1)f -=3.4286.

5.5用最小二乘方法对下表中的数据用经验公式bx

y ae =进行拟合

解答:

经验公式bx

y ae =首先线性化,令ln ,ln y y y a bx ==+则。

图5.4(a )数据点分布图

对数据点{},i i x y 进行分析,

图5.4(b )线性化数据点分布图

对图5.4(b )数据点进行线性拟合 >> c=linearfit(x,yp,1) c =

12345678910

-0.3011 8.1694

于是ln 8.1694,0.3011a b ==-,求得3531.39,0.3011a b ==-。 于是所求的函数为0.30113531.39bx

x

y ae e

-==,拟合示意图如下。

图5.4(c )数据点拟合示意图

5.6使用数值方法求函数22

1

()(1)f x x =+在 1.1,1.2,1.3x =处的导数值。()f x 的函数值如

下表中:

在MA TLAB 命令行窗口中输入 >> x=[1.0 1.1 1.2 1.3 1.4];

>> y=[0.2500 0.2268 0.2066 0.1890 0.1736];

>>[A,df1]=npointdiff(x,y,1.1);[A,df2]=npointdiff(x,y,1.2);[A,df3]=npointdiff(x,y,1.3);[df1;df2;df3] ans =

-0.2320 -0.2170 -0.2033

5.7用Romberg 方法计算积分

2

1

sin()

x dx x

,要求结果保留5位小数。 解答:

编写被积函数M 文件myfun07.m function f=myfun07(x)

0246810

12

f=sin(x)./x;

参考EXAMP5008,修改romberg函数如下

function[s,n]=romberg(f,a,b,Eps)

if nargin<4

Eps=1e-6;

end

s=1;

s0=0;

k=2;

t=[];

t(1,1)=(b-a)*(feval(f,a)+feval(f,b))/2;

while abs(s-s0)>Eps

h=(b-a)/2^(k-1);

w=0;

if h~=0

for i=1:2^(k-1)-1

w=w+feval(f,a+i*h);

end

t(k,1)=h*(feval(f,a)/2+w+feval(f,b)/2);

for j=2:k

for i=1:(k-j+1)

t(i,j)=(4^(j-1)*t(i+1,j-1)-t(i,j-1))/(4^(j-1)-1);

end

end

s=t(1,k);

s0=t(1,k-1);

k=k+1;

n=k;

else

s=s0

n=-k

end

end

在命令行中调用romberg函数:

>> y=romberg('myfun07',1,2);vpa(y,5)

ans = 0.65933

5.8求矩阵

1.0 1.00.5

1.0 1.00.25

0.50.25 2.0

⎡⎤

⎢⎥

⎢⎥

⎢⎥

⎣⎦

的全部特征值及其对应的特征向量。

解答:

在MA TLAB命令行窗口中输入

>> A=[1.0 1.0 0.5;1.0 1.0 0.25;0.5 0.25 2.0]; >> [V D] = eig(A)

V =

0.7212 0.4443 0.5315 -0.6863 0.5621 0.4615 -0.0937 -0.6976 0.7103 D =

-0.0166 0 0 0 1.4801 0

0 0 2.5365

5.9使用Euler 方法解初值问题2(01)

(0)1

y y xy x y '⎧=--≤≤⎨=⎩,计算结果保留6位小数。

解答:

编写右端向量函数M 文件myfun11.m function f=myfun10(x,y) f=-y-x.*y.*y;

利用EXAMP5014,在命令行中调用euler 函数

[x y]=euler('myfun10',0,1,1,0.1);format long ;y=vpa(y,6) y =

[ 1.0, 0.9, 0.8019, 0.708849, 0.62289, 0.545081, 0.475718, 0.414567, 0.36108, 0.314542, 0.274183]

5.10求解二阶微分方程的初值问题

,(01)(0)0,(0)1y y x x y y ''-=≤≤⎧⎨

'==⎩

解答:

令y z '=,原问题化为一阶方程组,(01)

(0)0,(0)1y z z x y x y z '=⎧⎪

'=+≤≤⎨⎪==⎩

编写右端向量函数M 文件myfun11.m function y=myfun11(x,w) y=zeros(2,1); %y=w(1) %z=w(2) y(1)=w(2); y(2)=x+w(1);

在命令行中调用ode45函数求原函数及导函数:

[x,y]=ode45(@dy,[0 1],[0 1]);x=x',z=y';y=z(1,:),yy=z(2,:) x =

Columns 1 through 15

0 0.0001 0.0001 0.0002 0.0002 0.0005 0.0007 0.0010 0.0012 0.0025 0.0037 0.0050 0.0062 0.0125 0.0188 Columns 16 through 30

0.0251 0.0313 0.0563 0.0813 0.1063 0.1313 0.1563 0.1813

0.2063 0.2313 0.2563 0.2813 0.3063 0.3313 0.3563

Columns 31 through 45

0.3813 0.4063 0.4313 0.4563 0.4813 0.5063 0.5313 0.5563 0.5813 0.6063 0.6313 0.6563 0.6813 0.7063 0.7313

Columns 46 through 57

0.7563 0.7813 0.8063 0.8313 0.8563 0.8813 0.9063 0.9313 0.9485 0.9657 0.9828 1.0000

y =

Columns 1 through 15

0 0.0001 0.0001 0.0002 0.0002 0.0005 0.0007 0.0010 0.0012 0.0025 0.0037 0.0050 0.0062 0.0125 0.0188

Columns 16 through 30

0.0251 0.0314 0.0564 0.0815 0.1067 0.1321 0.1576 0.1833 0.2093 0.2355 0.2620 0.2888 0.3160 0.3435 0.3715

Columns 31 through 45

0.4000 0.4289 0.4584 0.4884 0.5190 0.5502 0.5821 0.6146 0.6480 0.6820 0.7169 0.7526 0.7893 0.8268 0.8653

Columns 46 through 57

0.9048 0.9453 0.9869 1.0296 1.0735 1.1186 1.1649 1.2126

1.2460 1.2802 1.3149 1.3504

yy =

Columns 1 through 15

1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0002 1.0004

Columns 16 through 30

1.0006 1.0010 1.0032 1.0066 1.0113 1.0173 1.0245 1.0330 1.0427 1.0538 1.0661 1.0797 1.0946 1.1108 1.1283

Columns 31 through 45

1.1472 1.1674 1.1890 1.2119 1.2362 1.2619 1.2890 1.3176 1.3476 1.3791 1.4120 1.4465 1.4825 1.5200 1.5591

Columns 46 through 57

1.5999 1.6422 1.6862 1.7319 1.7793 1.8284 1.8793 1.9320 1.9692

2.0073 2.0463 2.0862

作图

plot(x,y,'k-',x,yy,'k*');

title('Solution of ODEs with ode45')

legend('primitive function','derived function')

图形结果如下:

图5.5 二阶微分方程求解示意图

5.11取步长0.1h =,用经典公式求解初值问题

2,(01)(0)1y xy x y '=≤≤⎧⎨=⎩

解答:

参考EXAMP5016,编写右端函数M 文件myfun12.m

function f=myfun12(x,y)

f=2*x*y;

修改函数rungekutta 如下

function [xx,yy]=rungekutta(f,a,b,y0,h)

% f is the function entered as a string 'f'

% a,b are the left and right end points

% ya is the initial condition

% h is the step

x=a:h:b;

n=length(x);

y=zeros(1,n);

y(1)=y0;

for i=1:n-1

k1=feval(f,x(i),y(i));

k2=feval(f,x(i)+h/2,y(i)+h/2*k1);

k3=feval(f,x(i)+h/2,y(i)+h/2*k2);

k4=feval(f,x(i+1),y(i)+h*k3);

y(i+1)=(k1+2*k2+2*k3+k4)*h/6+y(i); end

xx=x;

yy=y;

ey=exp(x.*x)

plot(xx,yy,'kp',xx,ey,'k*');

xlabel('Independent Variable x'),ylabel('Dependent Variable y')

title('Solution of ODE with Runge-Kutta method')

legend('numal solution','exact solution')

在命令行中调用rungekutta函数:

>> [x y]=rungekutta('myfun12',0,1,1,0.1)

ey =

1.0000 1.0101 1.0408 1.0942 1.1735 1.2840 1.4333 1.6323 1.8965

2.2479 2.7183

x =

0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000 1.0000

y =

1.0000 1.0101 1.0408 1.0942 1.1735 1.2840 1.4333 1.6323 1.8965

2.2479 2.7183

图形结果如下:

图5.6 经典公式求解示意图

最新MATLAB基础教程-薛山第二版-课后习题答案

《MATLAB及应用》实验指导书《MATLAB及应用》实验指导书 班级:T1243-7 姓名:柏元强 学号:20120430724 总评成绩: 汽车工程学院 电测与汽车数字应用中心

目录 实验04051001 MATLAB语言基础 (1) 实验04051002 MATLAB科学计算及绘图 (18) 实验04051003 MATLAB综合实例编程 (31)

实验04051001 MATLAB语言基础 1实验目的 1)熟悉MATLAB的运行环境 2)掌握MATLAB的矩阵和数组的运算 3)掌握MATLAB符号表达式的创建 4)熟悉符号方程的求解 2实验内容 第二章 1.创建double的变量,并进行计算。 (1)a=87,b=190,计算 a+b、a-b、a*b。 clear,clc a=double(87); b=double(190); a+b,a-b,a*b (2)创建 uint8 类型的变量,数值与(1)中相同,进行相同的计算。 clear,clc a=uint8(87); b=uint8(190); a+b,a-b,a*b 2.计算: (1) () sin 60

(2) e3 (3) 3cos 4??π ??? clear,clc a=sind(60) b=exp(3) c=cos(3*pi/4) 3.设2u =,3v =,计算: (1) 4 log uv v (2) () 2 2 e u v v u +- (3) clear,clc u=2;v=3; a=(4*u*v)/log(v) b=((exp(u)+v)^2)/(v^2-u) c=(sqrt(u-3*v))/(u*v) 4.计算如下表达式: (1) ()() 3542i i -+ (2) () sin 28i - clear,clc (3-5*i)*(4+2*i) sin(2-8*i) 5.判断下面语句的运算结果。 (1) 4 < 20 (2) 4 <= 20

第5章--MATLAB绘图-习题答案

第5章 MATLAB绘图 习题5 一、选择题 1.如果x、y均为4×3矩阵,则执行plot(x,y)命令后在图形窗口中绘制()条曲线。D A.12 B.7 C.4 D.3 2.下列程序的运行结果是()。A x=0:pi/100:2*pi; for n=1:2:10 plot(n*sin(x),n*cos(x)) hold on end axis square A.5个同心圆 B.5根平行线 C.一根正弦曲线和一根余弦曲线 D.5根正弦曲线和5根余弦曲线3.命令text(1,1,'{\alpha}+{\beta}')执行后,得到的标注效果是()。C A.{\alpha}+{\beta} B.{\α}+{\β} C.α+β D.\α+\β4.subplot(2,2,3)是指()的子图。A A.两行两列的左下图 B.两行两列的右下图 C.两行两列的左上图 D.两行两列的右上图 5.要使函数y=2e x的曲线绘制成直线,应采用的绘图函数是()。C A.polar B.semilogx C.semilogy D.loglog 6.下列程序的运行结果是()。B [x,y]=meshgrid(1:5); surf(x,y,5*ones(size(x))); A.z=x+y平面 B.与xy平面平行的平面 C.与xy平面垂直的平面 D.z=5x平面 7.下列函数中不能用于隐函数绘图的是()。D A.ezmesh B.ezsurf C.ezplot D.plot3 8.下列程序运行后,看到的图形()。C t=0:pi/20:2*pi; [x,y]=meshgrid(-8:0.5:8); z=sin(sqrt(x.^2+y.^2))./sqrt(x.^2+y.^2+eps);

MATLAB基础及其应用教程-周开利-邓春晖课后答案 第五章

第5章习题解答 1. syms x; factor(x^3-6*x^2+11*x-6) ans = (x-1)*(x-2)*(x-3) r=simple((x-1)*(x-2)*(x-3)) r = x^3-6*x^2+11*x-6 2. A=sym('[sin1 sin2 sin3;sin4 sin5 sin6;sin7 sin8 sin9]') A = [ sin1, sin2, sin3] [ sin4, sin5, sin6] [ sin7, sin8, sin9] sym e; B=[e e^5 e^9;e^2 e^6 e^10;e^3 e^7 e^11;e^4 e^8 e^12] [ e, e^5, e^9] [ e^2, e^6, e^10] [ e^3, e^7, e^11] [ e^4, e^8, e^12] 3 syms x y a b c z; f=((x+y)*(a+b^c)^z)/(x+a)^2; prettye(f) c z (x + y) (a + b ) ----------------- 2 (x + a) 4. 首先写出符号式f,然后用collect(f, x)与collect(f,a)命令 5. 第一问同第4题,第二问用collect(g,exp(-2*x))命令 6.用factor命令

7.用simplify命令 8.用simple命令 9.diff(f) 10.写出符号表达式后,用diff(f) 命令 11.写出符号表达式后,用int(f)命令,第二小题:int(f,-pi,pi) 第三小题,写出符号矩阵Fx后,用int(Fx) 即可 12.用int(f,a,b)命令 13.方法同上,正无穷大用inf表示 14.第一小题可用limit(f),第二小题为limit(g,y,0) 15.(不做)这是一个多元函数的泰勒展开,MATLAB里无对应公式,只有应用基本公式求偏导。16.fourier(f) 17.方法同上 18.syms x t ; f=sin(x*t+2*t); laplace(f, t, ‘v’) 19. syms s; ilaplace(1/(s*s+1)) 20. ztrans(f) 21. iztrans(F) 22. (1). syms x1 x2 x3; L1=-x1+2*x2-2; L2=2*x1+x2+x3-3; L3=4*x1+5*x2+7*x3; L4=x1+x2+5*x3+5; [x1,x2,x3]=solve(L1,L2,L3,L4,x1,x2,x3) 求出空解 其它小题方法类似. 23. f=sym('sin(x)+tan(x)+1=0'); xf=solve(f) 24. 令X=[x1,x2]’, X’=[Dx1,Dx2]’, 由A=[1 3; -3 4], 原式实际上为: Dx1=x1+3*x2; Dx2=-3*x1+4*x2 所以代码为: [x1,x2]=dsolve('Dx1=x1+3*x2,Dx2=-3*x1+4*x2') 25. (1) y=dsolve('Dy=(x+y)*(x-y)') (2) y=dsolve('Dy=(y*log(y/x))/x','y(10)=1') 注意: matlab里, log就是自然对数, 这儿, 把log 写为ln也可以. (3) 方法同上. 26. y=dsolve('D2y=cos(2*x)-y','Dy(0)=0,y(0)=1') 27. (1) [f,g]=dsolve('Df=f+3*g,Dg=f+4') (2) 实际上与24题一样.

matlab课后习题及答案详解

第1章MATLAB概论 1.1与其他计算机语言相比较,MATLAB语言突出的特点是什么 MATLAB具有功能强大、使用方便、输入简捷、库函数丰富、开放性强等特点。 MATLAB系统由那些部分组成 MATLAB系统主要由开发环境、MATLAB数学函数库、MATLAB语言、图形功能和应用程序接口五个部分组成。 安装MATLAB时,在选择组件窗口中哪些部分必须勾选,没有勾选的部分以后如何补安装 在安装MATLAB时,安装内容由选择组件窗口中个复选框是否被勾选来决定,可以根据自己的需要选择安装内容,但基本平台(即MATLAB选项)必须安装。第一次安装没有选择的内容在补安装时只需按照安装的过程进行,只是在选择组件时只勾选要补装的组件或工具箱即可。 MATLAB操作桌面有几个窗口如何使某个窗口脱离桌面成为独立窗口又如何将脱离出去的窗口重新放置到桌面上 在MATLAB操作桌面上有五个窗口,在每个窗口的右上角有两个小按钮,一个是关闭窗口的Close按钮,一个是可以使窗口成为独立窗口的Undock按钮,点击Undock按钮就可以使该窗口脱离桌面成为独立窗口,在独立窗口的view菜单中选择Dock ……菜单项就可以将独立的窗口重新防止的桌面上。 如何启动M文件编辑/调试器 在操作桌面上选择“建立新文件”或“打开文件”操作时,M文件编辑/调试器将被启动。在命令窗口中键入edit命令时也可以启动M文件编辑/调试器。 存储在工作空间中的数组能编辑吗如何操作 存储在工作空间的数组可以通过数组编辑器进行编辑:在工作空间浏览器中双击要编辑的数组名打开数组编辑器,再选中要修改的数据单元,输入修改内容即可。 命令历史窗口除了可以观察前面键入的命令外,还有什么用途 命令历史窗口除了用于查询以前键入的命令外,还可以直接执行命令历史窗口中选定的内容、将选定的内容拷贝到剪贴板中、将选定内容直接拷贝到M文件中。 如何设置当前目录和搜索路径,在当前目录上的文件和在搜索路径上的文件有什么区别 当前目录可以在当前目录浏览器窗口左上方的输入栏中设置,搜索路径可以通过选择操作桌面的file 菜单中的Set Path菜单项来完成。在没有特别说明的情况下,只有当前目录和搜索路径上的函数和文件能够被MATLAB运行和调用,如果在当前目录上有与搜索路径上相同文件名的文件时则优先执行当前目录上的文件,如果没有特别说明,数据文件将存储在当前目录上。 在MATLAB中有几种获得帮助的途径

MATLAB基础与应用教程 习题答案 作者 蔡旭晖 刘卫国 蔡立燕 第1-8章答案

第1章 一、思考题 4. (1) B=A(2:5,1:2:5) (2)A(7)=[] (3) A=A+30 (4)size(A) (5) t(find(t==0))=eps (6)t=reshape(x,3,4) (7)abs('matlab') (8)char(93) 5. A=[97,67,34,10;-78,75,65,5;32,5,-23,-59;0,-12,54,7] (1) B=A(1:3,:) C=A(:,1:2) D=A(2:4,3:4) E=B*C (2)A(find(A>=50 & A<=100)) 二、实验题 1.x=-74/180*pi;y=-27/180*pi; sin(x*x+y*y)/sqrt(tan(abs(x+y)))+pi 2.a=- 3.0:0.1:3.0; exp(-0.3*a).*sin(a+0.3) 3.x=[2,4;-0.45,5]; log(x+sqrt(1+x.*x))/2 4. A=[3,54,2;34,-45,7;87,90,15];B=[1,-2,67;2,8,74;9,3,0]; (1)A*B ans = 129 432 4197 7 -407 -1052 402 591 12489 A.*B ans = 3 -108 134 68 -360 518 783 270 0 (2) A^3 ans = -28917 240246 -4368 137883 -259101 27669 171333 252504 38673 A.^3 ans = 27 157464 8 39304 -91125 343 658503 729000 3375 (3)A/B ans = -5.8845 5.3549 -0.2028 6.3554 -5.6596 4.3293 -6.6325 6.2078 9.0241 B/A ans = 30.2855 19.2643 -8.5614

MATLAB基础MATLAB语言05B参考答案

1. 请用碳素墨水书写,留出答题空位。 3. 请您注意填写共几页。 2. 在此( 110 )注明答卷时间(分钟)。 4. 在此( 否 )注明是否需备用草纸。 出题说明: 5. 在此( 开卷 )注明是开卷或闭卷考试。 1. 将第1、2号孔用1根绳装订; 装订说明: 2. 再用一根绳的两头分别从第3、5孔穿过,两绳头同时从第4 孔穿出,并与横跨3、5孔的绳系牢; 注:如考生没将姓名、学号写在框格内, 3. 重复上述两项,共用四根绳; 按违纪处理。 4. 没按说明装订者必须重装。 ………①…………………………………………………②……………………………③………………………………④……………………………⑤ 考试科目 MATLAB 语言基础(B ) 适用专业(本科) 电子、通信、自动化(05级) 学期参考答案 一、 填空题(每空题2分,共40分) 1、x=[6 3 5 4],y=find(x ~=3),则y = 1 3 4 。 2、显示工作空间中存在的变量及其大小,可调用函数 whos 。 3、建立一个9阶魔术方阵的指令是 magic ( 9 ) 。 4、roots (p )命令的含义是 求多项式p 的根 。 5、a=[1,2,3,4,5]; b=[3,4,5,6,7],t2=(a>3)-b 则t2= -3 -4 -5 -5 -6 。 6、a=[1,2,3;4,5,6]; [n,m]=size(a), p=length(a),则n= 2 , p= 3 。 7、f=(x^2-1)*(x-2),collect(f), 则ans= x^3-2*x^2-x+2 。 8、a=2.7;xx=[‘there are ’,num2str(a),’kg eggs.’], upper(xx)执行后显示ans= THERE ARE 2.7KG EGGS. 。 9、a=[1, 4; 2, 3]; b=det(a),则b=-5 10、已知多项式: 372)(2 34+--+=x x x x x A ,实现其微分命令:A=[1 2 -1 -7 3]; B=polyder(A) 11、syms x y z ;findsym(x+i*y-j*z),ans =x, y, z 12、f=sym('(x+y)^2+3*(x+y)+5'); x=5; f1=subs(f) ;f1 =(5+y)^2+20+3*y 13、常微分方程 02222=++y dx dy dx y d ,且满足 0)0(',1)0(==y y ,写出求解方程的指令 y1=dsolve('D2y+2*Dy+2*y=0','y(0)=1,Dy(0)=0','x') 14、定义符号矩阵 ??????=0*3*2a b a A 指令为 A=sym(‘[a,2*b;3*a,0]’)。 15、写出m 函数文件中的函数声明行的格式: function 返回变量=函数名(输入变量) 16、x=’I like matlab ’, 则 x 的数据类型是 字符串 。 17、保持当前图形窗口的指令为:__ hold on ___ 18、从0到7等距离产生20个点的语句是__linspace(0,7,20)____ 19、g=sym(‘cos(y)’);h=sym(‘exp(t)’);f=compose(h,g,’z ’),则f=__exp(cos(z))__ 二、应用指令题(每题5分,共20分) 写出求微分方程组???????++=++=x dx x df dx x dg x x g x f dx x f d cos 4)()(sin )(3)()(2 2,以及在初始条件1)5(,3)3(,0)2(=='=g f f 下的特解的指令。( 5分) 解:[f,g]=dsolve('D2f=f+3*g+sin(x)', ,'x') (2分) [f,g]=dsolve('D2f=f+3*g+sin(x)','Dg=Df+4+cos(x)','f(2)=0','Df(3)=3','g(5)=1','x') (3分) 2、分别写出求函数式)2sin()(,)sin()(20y x im l x g x x im l x f y x +==+→→极限的命令。( 5分) 解:syms x y (1分) f1=sym('sin(x)/x'); g1=sym('sin(x+2*y)'); (2分) f=limit(f1,x,0) ; g= limit(g1,y,2,right); (2分)

MatLab语言及应用--习题及参考答案

MatLab语言及应用--习题 1.产生一个1x10的随机矩阵,大小位于(-5 5),并且按照从大到小的顺序排列好! 1.A = [21 2 3; 4 35 6; 7 8 49];B = [3; 2; 1];设求AB、BTA、A-1与A-1B, 求A2、A的2次数幂,并求矩阵A的秩、转置和行列式。

2.请产生一个100*5的矩阵,矩阵的每一行都是[1 2 3 4 5]

4. 请修改下面的程序,让他们没有for循环语句! A=[1 2 3; 4 5 6; 7 8 9]; [r c]=size(A); for i=1:1:r for j=1:1:c if (A(i,j)>8 | A(i,j)<2) A(i,j)=0; end end end 5.a=[1 2 3 4 5],b=a(1)*a(5)+a(2)*a(4)+a(3)*a(3)+a(4)*a(2)+a(5)*a(1).试用MATLAB中最简单的方法计算b,注意最简单。 6. 求下列联立方程的解 3x+4y-7z-12w=4 5x-7y+4z+ 2w=-3 x +8z- 5w=9 -6x+5y-2z+10w=-8 求系数矩阵的秩;求出方程组的解。 7.设 y=cos[0.5+((3sinx)/(1+x^2))] 把x=0~2π间分为101点,画出以x为横坐 标,y为纵坐标的曲线;

8. 设f(x)=x^5-4x^4+3x^2+2x+6取x=[-2,8]之间函数的值(取100个点),画出 曲线,看它有几个零点。 9. 在[-10,10;-10,10]范围内画出函数的三维图形。 10.编写一个函数,使其能够产生如下的分段函数:??? ??≤≤<-≤=x x x x x x f 65.06 20.251.525.0)(,,, , 并调用此函数,绘制曲线2)()(范围的2], [0在+?+=x f x f x 。(10分)

MATLAB语言基础与应用(第二版)第5章 习题答案

第5章习题与答案 5.1用矩阵三角分解方法解方程组 1231231 23214453186920 x x x x x x x x x +-=⎧⎪ -+=⎨⎪+-=⎩ 解答: >>A=[2 1 -1;4 -1 3;6 9 -1] A = 2 1 -1 4 -1 3 6 9 -1 >>b=[1 4 18 20]; b = 14 18 20 >> [L, U, P]=lu(A) L = 1.0000 0 0 0.6667 1.0000 0 0.3333 0.2857 1.0000 U = 6.0000 9.0000 -1.0000 0 - 7.0000 3.6667 0 0 -1.7143 P = 0 0 1 0 1 0 1 0 0 >> y=backsub(L,P*b’) y = 20.0000 4.6667 6.0000 >> x=backsub(U,y) x = 6.5000 -2.5000 -3.5000 5.2 Cholesky 分解方法解方程组 123121 33235223 3127 x x x x x x x ++=⎧⎪ +=⎨⎪+=⎩ 解答: >> A=[3 2 3;2 2 0;3 0 12] A =

3 2 3 2 2 0 3 0 12 >> b=[5;3;7] b = 5 3 7 >> L=chol(A) L = 1.7321 1.1547 1.7321 0 0.8165 -2.4495 0 0 1.7321 >> y=backsub(L,b) y = -11.6871 15.7986 4.0415 >> x=backsub(L',y) x = -6.7475 28.8917 49.9399 5.3 解答: 观察数据点图形 >> x=0:0.5:2.5 x = 0 0.5000 1.0000 1.5000 2.0000 2.5000 >> y=[2.0 1.1 0.9 0.6 0.4 0.3] y = 2.0000 1.1000 0.9000 0.6000 0.4000 0.3000 >> plot(x,y)

matlab答案第五章

第五章 1.绘制下列曲线。 (1)2 1100 x y += (2)2 2 21x e y - =π (3)12 2 =+y x (4)⎩ ⎨⎧==3 2 5t y t x 答: (1) x=-10:0.1:10; y=100./(1+x.^2); plot(x,y) (2) x=-10:0.1:10; y=1/(2*pi)*exp(-x.^2/2); plot(x,y)

(3) ezplot('x^2+y^2=1')

(4) t=-10:0.1:10; x=t.^2; y=5*t.^3; plot(x,y) 2. 绘制下列三维图形。 (1)⎪⎩ ⎪ ⎨⎧===t z t y t x sin cos (2)⎪⎩ ⎪ ⎨⎧=+=+=u z v u y v u x sin sin )cos 1(cos )cos 1( (3)5=z (4)半径为10的球面(提示:用sphere 函数 答: (1) t=0:pi/100:2*pi;

x=cos(t); y=sin(t); z=t; plot3(x,y,z) (2) u=0:pi/100:2*pi; v=0:pi/100:2*pi; x=(1+cos(u)).*cos(v); y=(1+cos(u)).*sin(v); z=sin(u); plot3(x,y,z)

(3) [x,y]=meshgrid(-100:100); z=5*ones(size(x)); mesh(x,y,z) (4) [x,y,z] = sphere; %等价于sphere(20) 20是画出来的球面的经纬分面数...20的话就是20个经度, 20个纬度,或者说“就是划出20╳20面的单位球体,把球的表面分成400个小网格” surf(x,y,z); %绘制单位球面 x = 10*x; y = 10*y; z = 10*z;

matlab程序设计与应用第二版习题答案

matlab程序设计与应用第二版习题答案 Matlab程序设计与应用第二版习题答案 Matlab是一种强大的数学软件,广泛应用于科学计算、数据分析和工程设计等 领域。《Matlab程序设计与应用》是一本经典的教材,对于学习和掌握Matlab 编程语言具有重要的意义。本文将为大家提供《Matlab程序设计与应用第二版》中部分习题的答案,帮助读者更好地理解和应用Matlab。 第一章:Matlab基础 1.1 基本操作 1. a = 3; b = 4; c = sqrt(a^2 + b^2); disp(c); 2. x = linspace(-pi, pi, 100); y = sin(x); plot(x, y); 3. A = [1 2 3; 4 5 6; 7 8 9]; B = [9 8 7; 6 5 4; 3 2 1]; C = A + B; disp(C); 1.2 控制结构 1. for i = 1:10 disp(i); end 2. n = 0; sum = 0; while sum < 100 n = n + 1; sum = sum + n; end disp(n); 3. x = 5; if x > 0 disp('x is positive');

elseif x < 0 disp('x is negative'); else disp('x is zero'); end 第二章:向量和矩阵运算 2.1 向量运算 1. A = [1 2 3]; B = [4 5 6]; C = A .* B; disp(C); 2. A = [1 2 3]; B = [4 5 6]; C = A ./ B; disp(C); 3. A = [1 2 3]; B = [4 5 6]; C = dot(A, B); disp(C); 2.2 矩阵运算 1. A = [1 2 3; 4 5 6]; B = [7 8; 9 10; 11 12]; C = A * B; disp(C); 2. A = [1 2 3; 4 5 6]; B = [7 8; 9 10; 11 12]; C = B * A; disp(C); 3. A = [1 2 3; 4 5 6]; B = [7 8; 9 10; 11 12]; C = A .* B; disp(C); 第三章:函数和脚本文件 3.1 函数 1. function y = myfunc(x) y = x^2 + 3*x + 2; end 2. function [y1, y2] = myfunc(x1, x2) y1 = x1^2 + 3*x1 + 2; y2 = x2^2 + 3*x2 + 2;

matlab基础与应用教程课后答案

matlab基础与应用教程课后答案 【篇一:matlab教程基本应用练习题及解答】 txt>要求:将每题的答案(命令行和运行结果、图片或m文件的文 件名及具体内容)直接拷贝插入到各题的下方:(1)若为命令行, 要求将提示符“”一起拷入,并在右侧用“%”注明命令行的每条命令 的作用;(2)若为多个运行结果,拷入后要求解释每个结果具体对 应题目中的哪个要求,也在右侧用“%”注明;(3)如果为m文件,除了将文件名和此文件的具体内容全部拷入外,再将所有原始m文 件和本练习题电子版放在一个以“专业班级+本人姓名+学号”命名 的文件夹内一起上传。 ans = 1 0 0 0 1 0 0 0 1 ans = 0 0 0 0 0 0 ans = 1 1 1 1 1 1 1 1 1 1 1 1 20+40*rand(1,10) %生成10个在区间[20,60]上均匀分布的随机数。ans = 44.617351.677556.872549.528327.050636.228257.418856.676236 .410855.7460 二.1)计算向量(2,4,6,8)的最大值,最小值,平均值,中值,排序,总和值; max([2,4,6,8])%最大值 ans = 8 min([2,4,6,8])% 最小值 ans = 2 mean([2,4,6,8])% 平均值 ans =

5 median([2,4,6,8])% 中值 ans = 5 sort([2,4,6,8])% 排序 ans = 2 4 6 8 sum([2,4,6,8])% 总和值 ans = 20 2)在行向量(2,4,6,8)和(1,3,5,7)之间实施加减乘除及幂运算; a=[2 4 6 8]; b=[1 3 5 7]; a+b%加 ans = 3 7 11 15 a-b%减 ans = 1 1 1 1 a.*b%乘 ans = 2 12 30 56 a./b%除 ans = 2.0000 1.3333 1.2000 1.1429 a.^b%幂 ans = 2 64 7776 2097152 3)在向量(1,3,5)与标量2之间实施加减乘除及幂运算。 a=[1 3 5]; a+3%加 ans = 4 6 8 a-3%减 ans = -2 0 2 a*3%乘 ans =

MATLAB语言与控制系统仿真-参考答案-第5章

5.6 控制系统的时域响应MATLAB 仿真实训 5.6.1实训目的 1. 学会利用MATLAB 绘制系统的单位阶跃响应曲线,掌握读取系统动态性能指标的方法; 2. 学会利用MATLAB 绘制系统的单位脉冲响应曲线的方法; 3. 掌握利用MATLAB 绘制系统的零输入响应曲线的方法; 4. 掌握利用MATLAB 绘制系统的一般输入响应曲线的方法; 5. 学会通过仿真曲线读取相关信息,并依据有关信息进行系统的时域分析。 5.6.2实训内容 1.编写程序求取下列各系统的单位阶跃响应,完成表5-5并记录相关曲线。 162.316)(21++= s s s G 16 4.216 )(22 ++=s s s G 166.116)(2 3++=s s s G 1616 )(24++=s s s G 解:>> n1=16; >> d1=[1,3.2,16]; >> sys1=tf(n1,d1); >> step(sys1) >> n2=16; >> d2=[1,2.4,16]; >> sys2=tf(n2,d2); >> step(sys2)

>> n3=16; >> d3=[1,1.6,16]; >> sys3=tf(n3,d3); >> step(sys3) >> n4=16; >> d4=[1,1,16]; >> sys4=tf(n4,d4); >> step(sys4)

w=4; cmax1=1+exp(-z1*pi/sqrt(1-z1^2)); tp1=pi/(w*sqrt(1-z1^2)); ts1=3.5/(z1*w); [cmax1,tp1,ts1] ans = 1.2538 0.8569 2.1875 >> z2=0.3; w=4; cmax2=1+exp(-z2*pi/sqrt(1-z2^2)); tp2=pi/(w*sqrt(1-z2^2)); ts2=3.5/(z2*w); [cmax2,tp2,ts2]

MATLAB习题参考答案

第1章 MATLAB简介 1、MA TLAB的主要特点有:①语言简洁,编程效率高。②人机界面友善,交互性好。③绘图功能强大,便于数据可视化。④学科众多、领域广泛的MATLAB工具箱。⑤源程序的开放性。 MATLAB的典型应用领域有:①自动控制②汽车③电子④仪器仪表⑤生物医学⑥信号处理⑦通信等。 2、填空题 ⑴命令窗口、命令历史窗口、当前目录窗口 ⑵查阅、保存、编辑 ⑶清除图形窗、清除命令窗口中显示内容、清除MATLAB工作空间中保存的变量。 3、如果想查看某一变量具体内容或者对其修改操作,可以在工作空间中双击该变量名称,可以打开数组编辑器,在数组编辑器中可以查看变量的具体内容,也可以对其修改。如果想删除MATLAB内存中的变量,可以在工作空间中选中该变量,然后利用工作空间窗口的菜单命令或工具条中的快捷图标进行删除。 4、1+2+3+4+5+... (+ 后面可以直接跟...,也可以在+和...中加一个空格。) 6+7+8+9 1+2+3+4+5 ... (5后面必须跟一个空格,不能直接跟...,否则报错,这在预置一个+6+7+8+9 大数组时很重要。) 第2章矩阵与数值数组 1、填空题: ⑴非数、无穷大、机器零阈值,浮点数相对精度,eps= 2.2204e-016。 ⑵全下标、单下标。 2、阅读程序题: (本题主要考察数组的寻访、赋值和简单运算,提示:带;的语句不显示结果) ⑴ans = 2 3 7 Sa = 10 20 30 A = 1 20 5 30 9 10 4 6 8 10 ⑵ A = 1 3 5 7 9 11 13 15

2 4 6 8 10 12 14 16 ans = 1 5 9 13 2 6 10 14 3 7 11 15 4 8 12 16 A = 0 0 5 7 0 0 13 15 2 4 0 0 10 12 0 0 ⑶ ans = -1 -4 6 4 ans = 3 0 5 -2 ans = 3 6 9 12 ans = 3 6 9 12 3、A=magic(4); L=A<10 L = 0 1 1 0 1 0 0 1 1 1 1 0 1 0 0 1 4、省略。 第3章字符串、元胞和构架数组 1. 直接创建法:S1=['Where there is life,' 'there is hope. '] %注意第2行要加入6个空格使其与第一 行字符数相等,否则报错。 S2=str2mat('Where there is life,','there is hope.') S3=strvcat('Where there is life,','there is hope.') %后两种方法则不用考虑两行 字符的数目 2. 填空题:A(2,3);A{2,3} 3. 阅读程序题: ⑴subch = ABc12

相关主题
相关文档
最新文档