matlab课后习题答案

matlab课后习题答案
matlab课后习题答案

第4章数值运算

习题 4 及解答

1 根据题给的模拟实际测量数据的一组t和)(t y试用数值差分diff

或数值梯度gradient指令计算)(t

y'曲线绘制

y',然后把)(t y和)(t 在同一张图上,观察数值求导的后果。(模拟数据从prob_data401.mat获得)

〖目的〗

●强调:要非常慎用数值导数计算。

●练习mat数据文件中数据的获取。

●实验数据求导的后果

●把两条曲线绘制在同一图上的一种方法。

〖解答〗

(1)从数据文件获得数据的指令

假如prob_data401.mat文件在当前目录或搜索路径上

clear

load prob_data401.mat

(2)用diff求导的指令

dt=t(2)-t(1);

yc=diff(y)/dt; %注意yc的长度将比y短1

plot(t,y,'b',t(2:end),yc,'r')

(3)用gradent求导的指令(图形与上相似)

dt=t(2)-t(1);

yc=gradient(y)/dt;

plot(t,y,'b',t,yc,'r') grid on

〖说明〗

● 不到万不得已,不要进行数值求导。

● 假若一定要计算数值导数,自变量增量dt 要取得比原有数据相对误差高1、2个量级

以上。

● 求导会使数据中原有的噪声放大。

2 采用数值计算方法,画出dt t

t

x y x

?

=0

sin )(在]10 ,0[区间曲线,并计算)5.4(y 。

〖提示〗

● 指定区间内的积分函数可用cumtrapz 指令给出。 ● )5.4(y 在计算要求不太高的地方可用find 指令算得。

〖目的〗

● 指定区间内的积分函数的数值计算法和cumtrapz 指令。 ● find 指令的应用。 〖解答〗

dt=1e-4; t=0:dt:10;

t=t+(t==0)*eps; f=sin(t)./t;

s=cumtrapz(f)*dt;

plot(t,s,'LineWidth',3) ii=find(t==4.5); s45=s(ii) s45 =

3 求函数x

e

x f 3sin )(=的数值积分?=π

0 )(dx x f s ,并请采用符号计算

尝试复算。

〖提示〗

● 数值积分均可尝试。 ● 符号积分的局限性。

〖目的〗

● 符号积分的局限性。 〖解答〗

dx=pi/2000; x=0:dx:pi;

s=trapz(exp(sin(x).^3))*dx s =

5.1370

符号复算的尝试

syms x

f=exp(sin(x)^3); ss=int(f,x,0,pi)

Warning: Explicit integral could not be found. > In sym.int at 58 ss =

int(exp(sin(x)^3),x = 0 .. pi)

4 用

quad 求取dx x e x sin 7.15?--π

π的数值积分,并保证积分的绝对精

度为910-。

〖目的〗

● quadl ,精度可控,计算较快。

● 近似积分指令trapz 获得高精度积分的内存和时间代价较高。 〖解答〗

%精度可控的数值积分

fx=@(x)exp(-abs(x)).*abs(sin(x)); format long

sq=quadl(fx,-10*pi,1.7*pi,1e-7) sq =

1.08784993815498

%近似积分算法

x=linspace(-10*pi,1.7*pi,1e7); dx=x(2)-x(1);

st=trapz(exp(-abs(x)).*abs(sin(x)))*dx st =

1.08784949973430

%符号积分算法

y='exp(-abs(x))*abs(sin(x))' si=vpa(int(y,-10*pi,1.7*pi),16)

y =

exp(-abs(x))*abs(sin(x)) si =

1.087849499412911

5 求函数5.08.12cos 5.1)

5(sin )(2

06.02

++-=t t t e t t f t 在区间]5,5[-中的最小

值点。

〖目的〗

● 理解极值概念的邻域性。 ● 如何求最小值。

● 学习运用作图法求极值或最小值。 ● 感受符号法的局限性。 〖解答〗

(1)采用fminbnd 找极小值点 在指令窗中多次运行以下指令,观察在不同数目子区间分割下,进行的极小值搜索。然后从一系列极小值点中,确定最小值点。 clear

ft=@(t)sin(5*t).^2.*exp(0.06*t.*t)+1.8*abs(t+0.5)-1.5*t.*cos(2*t); disp('计算中,把[ -5,5] 分成若干搜索子区间。')

N=input(' 请输入子区间数 N ,注意使N>=1 ?');%该指令只能在指令窗中运行 t t=linspace(-5,5,N+1); f or k=1:N

[tmin(k),fobj(k)]=fminbnd(ft,tt(k),tt(k+1)); e nd [fobj,ii]=sort(fobj); %将目标值由小到大排列 t min=tmin(ii); %使极小值点做与目标值相应的重新排列 fobj,tmin

(2)最后确定的最小值点

在10,,2,1 =N 的不同分割下,经观察,最后确定出 最小值点是 -1.28498111480531 相应目标值是 -0.18604801006545

(3)采用作图法近似确定最小值点(另一方法) (A )在指令窗中运行以下指令: clear

ft=@(t)sin(5*t).^2.*exp(0.06*t.*t)+1.8*abs(t+0.5)-1.5*t.*cos(2*t); t=-5:0.001:5; ff=ft(t); plot(t,ff) grid on,shg (B )经观察后,把最小值附近邻域放到足够大,然后运行以下指令,那放大图形被推向前台,与此同时光标变为“十字线”,利用它点击极值点可得到最小值数据

[tmin2,fobj2]=ginput(1) tmin2 =

-1.28500000993975 fobj2 =

-0.18604799369136

出现具有相同数值的刻度区域表明已达最小可分辨状态

(4)符号法求最小值的尝试

syms t

fts=sin(5*t)^2*exp(0.06*t*t)-1.5*t*cos(2*t)+1.8*abs(t+0.5);

dfdt=diff(fts,t); %求导函数

tmin=solve(dfdt,t) %求导函数的零点

fobj3=subs(fts,t,tmin) %得到一个具体的极值点

tmin =

-.60100931947716486053884417850955e-2

fobj3 =

.89909908144684551670208797723124

〖说明〗

●最小值是对整个区间而言的,极小值是对邻域而言的。

●在一个区间中寻找最小值点,对不同子区间分割进行多次搜索是必要的。这样可以避免

把极小值点误作为最小值点。最小值点是从一系列极小值点和边界点的比较中确定的。

●作图法求最小值点,很直观。假若绘图时,自变量步长取得足够小,那么所求得的最小

值点有相当好的精度。

●符号法在本例中,只求出一个极值点。其余很多极值点无法秋初,更不可能得到最小值。

6 设0)0(,1)0(,1)(2)(3)

(22===+-dt dy y t y dt t dy dt t y d ,用数值法和符号法求

5.0)(=t t y 。

〖目的〗

● 学习如何把高阶微分方程写成一阶微分方程组。

● ode45解算器的导数函数如何采用匿名函数形式构成。

● 如何从ode45一组数值解点,求指定自变量对应的函数值。 〖解答〗

(1)改写高阶微分方程为一阶微分方程组

令dt

t dy t y t y t y )

()(),()(21=

=,于是据高阶微分方程可写出 ?????

++-==1)(3)(2)

()()(21221t y t y dt

t dy t y dt t dy

(2)运行以下指令求y(t)的数值解

format long ts=[0,1]; y0=[1;0];

dydt=@(t,y)[y(2);-2*y(1)+3*y(2)+1]; %<4> %匿名函数写成的ode45所需得导数函数 [tt,yy]=ode45(dydt,ts,y0);

y_05=interp1(tt,yy(:,1),0.5,'spline'), %用一维插值求y(0.5) y_05 =

0.78958020790127

(3)符号法求解

syms t;

ys=dsolve('D2y-3*Dy+2*y=1','y(0)=1,Dy(0)=0','t') ys_05=subs(ys,t,sym('0.5')) ys =

1/2-1/2*exp(2*t)+exp(t) ys_05 =

.78958035647060552916850705213780

〖说明〗

● 第<4>条指令中的导数函数也可采用M 函数文件表达,具体如下。

function S=prob_DyDt(t,y) S=[y(2);-2*y(1)+3*y(2)+1];

7 已知矩阵A=magic(8),(1)求该矩阵的“值空间基阵”B ;(2)

写出“A 的任何列可用基向量线性表出”的验证程序(提示:利用rref 检验)。

〖目的〗

● 体验矩阵值空间的基向量组的不唯一性,但它们可以互为线性表出。 ● 利用rref 检验两个矩阵能否互为表出。 〖解答〗

(1)A的值空间的三组不同“基”

A=magic(8); %采用8阶魔方阵作为实验矩阵

[R,ci]=rref(A);

B1=A(:,ci) %直接从A中取基向量

B2=orth(A) %求A值空间的正交基

[V,D]=eig(A);

rv=sum(sum(abs(D))>1000*eps); %非零特征值数就是矩阵的秩

B3=V(:,1:rv) %取A的非零特征值对应的特征向量作基

B1 =

64 2 3

9 55 54

17 47 46

40 26 27

32 34 35

41 23 22

49 15 14

8 58 59

B2 =

-0.3536 0.5401 0.3536

-0.3536 -0.3858 -0.3536

-0.3536 -0.2315 -0.3536

-0.3536 0.0772 0.3536

-0.3536 -0.0772 0.3536

-0.3536 0.2315 -0.3536

-0.3536 0.3858 -0.3536

-0.3536 -0.5401 0.3536

B3 =

0.3536 0.6270 0.3913

0.3536 -0.4815 -0.2458

0.3536 -0.3361 -0.1004

0.3536 0.1906 -0.0451

0.3536 0.0451 -0.1906

0.3536 0.1004 0.3361

0.3536 0.2458 0.4815

0.3536 -0.3913 -0.6270

(2)验证A的任何列可用B1线性表出

B1_A=rref([B1,A]) %若B1_A矩阵的下5行全为0,

%就表明A可以被B1的3根基向量线性表出

B1_A =

1 0 0 1 0 0 1 1 0 0 1

0 1 0 0 1 0 3 4 -3 -4 7

0 0 1 0 0 1 -3 -4 4 5 -7

0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0

B2_A=rref([B2,A])

B2_A =

Columns 1 through 7

1.0000 0 0 -91.9239 -91.9239 -91.9239 -91.9239

0 1.0000 0 51.8459 -51.8459 -51.8459 51.8459

0 0 1.0000 9.8995 -7.0711 -4.2426 1.4142

0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

Columns 8 through 11

-91.9239 -91.9239 -91.9239 -91.9239

51.8459 -51.8459 -51.8459 51.8459

-1.4142 4.2426 7.0711 -9.8995

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

B3_A=rref([B3,A])

B3_A =

Columns 1 through 7

1.0000 0 0 91.9239 91.9239 91.9239 91.9239

0 1.0000 0 42.3447 -38.1021 -33.8594 29.6168

0 0 1.0000 12.6462 -16.8889 -21.1315 25.3741

0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

Columns 8 through 11

91.9239 91.9239 91.9239 91.9239

25.3741 -21.1315 -16.8889 12.6462

29.6168 -33.8594 -38.1021 42.3447

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

〖说明〗

●magic(n)产生魔方阵。魔方阵具有很多特异的性质。就其秩而言,当n为奇数时,该矩

阵满秩;当n 为4的倍数时,矩阵的秩总是3;当 n 为偶数但不是4倍数时,则矩阵的秩等于 (n/2+2)。关于魔方阵的有关历史,请见第6.1.3节。

8 已知由MATLAB指令创建的矩阵A=gallery(5),试对该矩阵进行

特征值分解,并通过验算观察发生的现象。

〖目的〗

●展示特征值分解可能存在的数值问题。

●condeig是比较严谨的特征值分解指令。

●Jordan分解的作用。

〖解答〗

(1)特征值分解

A=gallery(5)

[V,D]=eig(A);

diag(D)' %为紧凑地显示特征值而写

A =

-9 11 -21 63 -252

70 -69 141 -421 1684

-575 575 -1149 3451 -13801

3891 -3891 7782 -23345 93365

1024 -1024 2048 -6144 24572

ans =

Columns 1 through 4

-0.0181 -0.0054 - 0.0171i -0.0054 + 0.0171i 0.0144 - 0.0104i

Column 5

0.0144 + 0.0104i

(2)验算表明相对误差较大

AE=V*D/V

er_AE=norm(A-AE,'fro')/norm(A,'fro') %相对F范数

AE =

1.0e+004 *

Columns 1 through 4

-0.0009 + 0.0000i 0.0011 - 0.0000i -0.0021 + 0.0000i 0.0063 - 0.0000i

0.0070 - 0.0000i -0.0069 + 0.0000i 0.0141 - 0.0000i -0.0421 + 0.0000i

-0.0575 + 0.0000i 0.0575 - 0.0000i -0.1149 + 0.0000i 0.3451 - 0.0000i

0.3891 - 0.0000i -0.3891 + 0.0000i 0.7781 - 0.0000i -2.3343 + 0.0000i

0.1024 - 0.0000i -0.1024 + 0.0000i 0.2048 - 0.0000i -0.6144 + 0.0000i

Column 5

-0.0252 + 0.0000i

0.1684 - 0.0000i

-1.3800 + 0.0000i

9.3359 - 0.0001i

2.4570 - 0.0000i

er_AE =

6.9310e-005

(3)一个更严谨的特征值分解指令

[Vc,Dc,eigc]=condeig(A) %eigc中的高值时,说明相应的特征值不可信。

Vc =

Columns 1 through 4

-0.0000 -0.0000 + 0.0000i -0.0000 - 0.0000i 0.0000 + 0.0000i

0.0206 0.0207 + 0.0000i 0.0207 - 0.0000i 0.0207 + 0.0000i

-0.1397 -0.1397 + 0.0000i -0.1397 - 0.0000i -0.1397 + 0.0000i

0.9574 0.9574 0.9574 0.9574

0.2519 0.2519 - 0.0000i 0.2519 + 0.0000i 0.2519 - 0.0000i

Column 5

0.0000 - 0.0000i

0.0207 - 0.0000i

-0.1397 - 0.0000i

0.9574

0.2519 + 0.0000i

Dc =

Columns 1 through 4

-0.0181 0 0 0

0 -0.0054 + 0.0171i 0 0

0 0 -0.0054 - 0.0171i 0

0 0 0 0.0144 + 0.0104i

0 0 0 0

Column 5

0.0144 - 0.0104i

eigc =

1.0e+011 *

5.2687

5.2313

5.2313

5.1725

5.1724

(4)对A采用Jordan分解并检验

[VJ,DJ]=jordan(A); %求出准确的广义特征值,使A*VJ=VJ*D成立。

DJ

AJ=VJ*DJ/VJ

er_AJ=norm(A-AJ,'fro')/norm(A,'fro')

DJ =

0 1 0 0 0

0 0 1 0 0

0 0 0 1 0

0 0 0 0 1

0 0 0 0 0

AJ =

1.0e+004 *

-0.0009 0.0011 -0.0021 0.0063 -0.0252

0.0070 -0.0069 0.0141 -0.0421 0.1684

-0.0575 0.0575 -0.1149 0.3451 -1.3801

0.3891 -0.3891 0.7782 -2.3345 9.3365

0.1024 -0.1024 0.2048 -0.6144 2.4572

er_AJ =

2.0500e-011

〖说明〗

●指令condeig的第3输出量eigc给出的是所谓的“矩阵特征值条件数”。当特征条件

1相当时,就意味着矩阵A可能“退化”,即矩阵可能存在“代数重数”大数与

eps

于“几何重数”的特征值。此时,实施Jordan分解更适宜。

●顺便指出:借助condeig算得的特征值条件数与cond指令算得的矩阵条件数是两个不

同概念。前者描述特征值的问题,后者描述矩阵逆的问题。

●本例矩阵A的特征值条件数很高,表明分解不可信。验算也表明,相对误差较大。

●当对矩阵A进行Jordan分解时,可以看到,A具有5重根。当对Jordan分解进行验算

时,相对误差很小。

9 求矩阵b

3(?的全1列向量。

Ax=的解,A为3阶魔方阵,b是)1

〖提示〗

●了解magic指令

rref 用于方程求解。

●矩阵除法和逆阵法解方程。

〖目的〗

●满秩方阵求解的一般过程。

●rref 用于方程求解。

●矩阵除法和逆阵法解方程。

〖解答〗

A=magic(3); %产生3阶魔方阵

b=ones(3,1); %(3*1)全1列向量

[R,C]=rref([A,b]) %Gauss Jordan消去法解方程,同时判断解的唯一性

x=A\b %矩阵除解方程

xx=inv(A)*b %逆阵法解方程

R =

1.0000 0 0 0.0667

0 1.0000 0 0.0667

0 0 1.0000 0.0667

C =

1 2 3

x =

0.0667

0.0667

0.0667

xx =

0.0667

0.0667

0.0667

〖说明〗

●rref指令通过对增广矩阵进行消去法操作完成解方程。由分解得到的3根“坐标向量”

和(或)C3指示的3根基向量,可见A3满秩,因此方程解唯一。

●在本例情况下,矩阵除、逆阵法、rref法所得解一致。

10 求矩阵b

4(?的全1列向量。

Ax=的解,A为4阶魔方阵,b是)1

〖提示〗

●用rref 可观察A不满秩,但b在A的值空间中,这类方程用无数解。

●矩阵除法能正确求得这类方程的特解。

●逆阵法不能求得这类方程的特解。

●注意特解和齐次解

〖目的〗

●A不满秩,但b在A的值空间中,这类方程的求解过程。

●rref 用于方程求解。

●矩阵除法能正确求得这类方程的特解。

●逆阵法不能求得这类方程的特解。

●解的验证方法。

●齐次解的获取。

●全解的获得。

〖解答〗

(1)借助增广矩阵用指令rref求解

A=magic(4); %产生3阶魔方阵

b=ones(4,1); %全1列向量

[R,C]=rref([A,b]) %求解,并判断解的唯一性

R =

1.0000 0 0 1.0000 0.0588

0 1.0000 0 3.0000 0.1176

0 0 1.0000 -3.0000 -0.0588

0 0 0 0 0

C =

1 2 3

关于以上结果的说明:

●R阶梯阵提供的信息

?前4列是原A阵经消元变换后的阶梯阵;而第5列是原b向量经相同变换后的结果。

?R的前三列为“基”,说明原A阵秩为3;而第4列的前三个元素,表示原A阵的

第4列由其前三列线性组合而成时的加权系数,即方程的一个解。

?R的第5列表明:b可由原A阵的前三列线性表出;b给出了方程的一个解;由于

原A阵“缺秩”,所以方程的确解不唯一。

●C数组提供的信息

?该数组中的三个元素表示变换取原A阵的第1,2,3列为基。

?该数组的元素总数就是“原A阵的秩”

(2)矩阵除求得的解

x=A\b

Warning: Matrix is close to singular or badly scaled.

Results may be inaccurate. RCOND = 1.306145e-017.

x =

0.0588

0.1176

-0.0588

运行结果指示:矩阵除法给出的解与rref解相同。(实际上,MATLAB在设计“除法”程序时,针对“b在A值空间中”的情况,就是用rref求解的。)

(3)逆阵法的解

xx=inv(A)*b

Warning: Matrix is close to singular or badly scaled.

Results may be inaccurate. RCOND = 1.306145e-017.

xx =

0.0469

0.1875

-0.0625

-0.0156

(3)验证前面所得的解

b_rref=A(:,C)*R(C,5) %验算rref的解

b_d=A*x %验算矩阵除的解

b_inv=A*xx %验算逆阵法的解

b_rref =

1

1

Matlab上机实验答案

Matlab上机实验答案 实验一 MATLAB运算基础 1. 先求下列表达式的值,然后显示MATLAB工作空间的使用情况并保存全部变量。 >> z1=2*sin(85*pi/180)/(1+exp(2)) z1 = >> x=[2 1+2i; 5]; >> z2=1/2*log(x+sqrt(1+x^2)) z2 = - + + -

>> a=::; >> z3=(exp.*a)-exp.*a))./2.*sin(a++log(+a)./2) (>> z33=(exp*a)-exp*a))/2.*sin(a++log(+a)/2)可以验证z3==z33,是否都为1) z3 = Columns 1 through 5 + + + + + Columns 6 through 10 + + + + + Columns 11 through 15 + + + + + Columns 16 through 20 + + + + +

Columns 21 through 25 + + + + + Columns 26 through 30 + + + + + Columns 31 through 35 + + + + + Columns 36 through 40 + + + + + Columns 41 through 45 + + + + + Columns 46 through 50

+ + + + + Columns 51 through 55 + + + + + Columns 56 through 60 + + + + + Column 61 + (4) 2 2 4 2 01 112 2123 t t z t t t t t ?≤< ? =-≤< ? ?-+≤< ? ,其中t=0:: >> t=0::; >> z4=(t>=0&t<1).*(t.^2)+(t>=1&t<2).*(t.^2-1)+(t>=2&t<3).*(t.^ 2-2.*t+1) z4 =

MATLAB全部实验及答案

MATLAB全部实验及答案 实验一、MATLAB基本操作 实验内容及步骤 4、有关向量、矩阵或数组的一些运算 (1)设A=15;B=20;求C=A+B与c=a+b? (2)设A=[1 2 3;4 5 6;7 8 9],B=[9 8 7;6 5 4;3 2 1];求A*B与 A.*B? A*B就是线代里面的矩阵相乘 A.*B是对应位置的元素相乘(3)设a=10,b=20;求i=a/b=0.5与j=a\b=2? (4)设a=[1 -2 3;4 5 -4;5 -6 7] 请设计出程序,分别找出小于0的矩阵元素及其位置(单下标、全 下标的形式),并将其单下标转换成全下标。 clear,clc a=[1 -2 3;4 5 -4;5 -6 7]; [x,y]=find(a<0); c=[]; for i=1:length(x) c(i,1)=a(x(i),y(i)); c(i,2)=x(i); c(i,3)=y(i); c(i,4)=(y(i)-1)*size(a,2)+x(i); end c

(5)在MATLAB命令行窗口运行A=[1,2;3,4]+i*[5,6;7,8];看结果如何?如果改成运行A=[1,2;3,4]+i[5,6;7,8],结果又如何?前面那 个是虚数矩阵,后面那个出错 (6)请写出完成下列计算的指令: a=[1 2 3;3 4 2;5 2 3],求a^2=?,a.^2=? a^2= 22 16 16 25 26 23 26 24 28 a.^2= 1 4 9 9 16 4 25 4 9 (7)有一段指令如下,请思考并说明运行结果及其原因 clear X=[1 2;8 9;3 6]; X( : ) 转化为列向量 (8)使用三元组方法,创建下列稀疏矩阵 2 0 8 0 0 0 0 1 0 4 0 0 6 0 0 0 方法一: clear,clc

Matlab课后习题解答

P16 Q2: 计算表达式()2 tan arccos x x -在0.25x =和0.78x π =时的函数值。 function y=jie(x) y=tan(-x.^2)*acos(x); >> jie(0.25) ans = -0.0825 >> jie(0.78*pi) ans = 0 + 0.4418i Q3:编写M 命令文件,求5010 2 1 1 1k k k k ==+ ∑∑ 的值。 a=0;b=0; for i=1:50 a=a+i*i; end for j=1:10 b=b+1/j; end c=a+b; >> c c = 4.2928e+004 P27 Q2:矩阵1234567 8 9A ????=??????,4 685563 2 2B ?? ?? =? ????? ,计算A B *,.A B *,并比较两者的区别。 >> A=[1 2 3;4 5 6;7 8 9];

>> B=[4 6 8;5 5 6;3 2 2]; >> A*B ans = 23 22 26 59 61 74 95 100 122 >> A.*B ans = 4 12 24 20 25 36 21 16 18 A*B表示A与B两矩阵相乘。 A.*B表示A与B对应元素相乘。 P34 Q2:编写一个转换成绩等级的程序,其中成绩等级转换标准为:考试分数在[] 90,100显示为优秀;分数在[) 0,60的 60,80的显示为及格;分数在[) 80,90的显示为良好;分数在[) 显示为不及格。 if x>=90 disp('优秀'); elseif x>=80 disp('良好'); elseif x>=60 disp('及格'); else disp('不及格'); end >> x=85 x = 85 良好

matlab课后习题解答第二章

第2章符号运算 习题2及解答 1 说出以下四条指令产生的结果各属于哪种数据类型,是“双精度” 对象,还是“符号”符号对象 3/7+; sym(3/7+; sym('3/7+'); vpa(sym(3/7+) 〖目的〗 不能从显示形式判断数据类型,而必须依靠class指令。 〖解答〗 c1=3/7+ c2=sym(3/7+ c3=sym('3/7+') c4=vpa(sym(3/7+) Cs1=class(c1) Cs2=class(c2) Cs3=class(c3) Cs4=class(c4) c1 = c2 = 37/70 c3 = c4 = Cs1 = double Cs2 = sym Cs3 = sym Cs4 = sym 2 在不加专门指定的情况下,以下符号表达式中的哪一个变量被认 为是自由符号变量. sym('sin(w*t)'),sym('a*exp(-X)'),sym('z*exp(j*th)') 〖目的〗 理解自由符号变量的确认规则。 〖解答〗 symvar(sym('sin(w*t)'),1) ans = w symvar(sym('a*exp(-X)'),1)

ans = a symvar(sym('z*exp(j*th)'),1) ans = z 5求符号矩阵???? ??????=3332 31 232221 131211 a a a a a a a a a A 的行列式值和逆,所得结果应采用“子表达式置换”简洁化。 〖目的〗 理解subexpr 指令。 〖解答〗 A=sym('[a11 a12 a13;a21 a22 a23;a31 a32 a33]') DA=det(A) IA=inv(A); [IAs,d]=subexpr(IA,d) A = [ a11, a12, a13] [ a21, a22, a23] [ a31, a32, a33] DA = a11*a22*a33 - a11*a23*a32 - a12*a21*a33 + a12*a23*a31 + a13*a21*a32 - a13*a22*a31 IAs = [ d*(a22*a33 - a23*a32), -d*(a12*a33 - a13*a32), d*(a12*a23 - a13*a22)] [ -d*(a21*a33 - a23*a31), d*(a11*a33 - a13*a31), -d*(a11*a23 - a13*a21)] [ d*(a21*a32 - a22*a31), -d*(a11*a32 - a12*a31), d*(a11*a22 - a12*a21)] d = 1/(a11*a22*a33 - a11*a23*a32 - a12*a21*a33 + a12*a23*a31 + a13*a21*a32 - a13*a22*a31) 8(1)通过符号计算求t t y sin )(=的导数 dt dy 。(2)然后根据此结果,求- =0t dt dy 和2 π = t dt dy 。 〖目的〗 diff, limit 指令的应用。 如何理解运行结果。 〖解答〗 syms t

MATLAB)课后实验答案

实验一 MATLAB 运算基础 1. 先求下列表达式的值,然后显示MATLAB 工作空间的使用情况并保存全部变量。 (1) 012 2sin 851z e =+ (2) 21ln(2 z x =,其中2 120.45 5i x +??=? ?-?? (3) 0.30.330.3sin(0.3)ln , 3.0, 2.9,,2.9,3.022 a a e e a z a a --+= ++=--L (4) 22 42011 122123t t z t t t t t ?≤

4. 完成下列操作: (1) 求[100,999]之间能被21整除的数的个数。 (2) 建立一个字符串向量,删除其中的大写字母。解:(1) 结果: (2). 建立一个字符串向量例如: ch='ABC123d4e56Fg9';则要求结果是:

实验二 MATLAB 矩阵分析与处理 1. 设有分块矩阵33322322E R A O S ?????? =? ??? ,其中E 、R 、O 、S 分别为单位矩阵、随机矩阵、零矩阵和对角阵,试通过数值计算验证22 E R RS A O S +?? =???? 。 解: M 文件如下; 5. 下面是一个线性方程组: 1 231 1 12340.951110.673450.5211145 6x x x ?? ??????????????=??? ?????????????????? ? ch = 123d4e56g9

(1) 求方程的解。 (2) 将方程右边向量元素b 3改为0.53再求解,并比较b 3的变化和解的相对变化。 (3) 计算系数矩阵A 的条件数并分析结论。 解: M 文件如下: 实验三 选择结构程序设计 1. 求分段函数的值。 2226035605231x x x x y x x x x x x x ?+-<≠-? =-+≤<≠≠??--? 且且及其他 用if 语句实现,分别输出x=-5.0,-3.0,1.0,2.0,2.5,3.0,5.0时的y 值。 解:M 文件如下:

matlab课后习题及答案详解

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

MATLAB实验题答案

1、求以下变量的值,并在MATLAB中验证。( 1 ) a = 1 : 2 : 5 a = 1 3 5 ( 2 ) b = [ a' , a' , a' ;a ] b = 1 1 1 3 3 3 5 5 5 1 3 5 ( 3 ) c = a + b ( 2 , : ) c = 4 6 8 2、下列运算是否合法,为什么?如合法, 结果是多少? >> result2=a*b Error using * Inner matrix dimensions must agree. >> result3=a+b result3 = 3 6 2 5 8 11 >> result4=b*d result4 = 31 22 22 40 49 13 >> result5=[b;c']*d result5 = 31 22 22 40 49 13 -5 -8 7 >> result6=a.*b result6 = 2 8 -3 4 1 5 30 >> result7=a./b result7 = 0.5000 0.5000 -3.0000 4.0000 1.6667 1.2000>> result8=a.c Attempt to reference field of non-structure array. >> result9=a.\b result9 = 2.0000 2.0000 -0.3333 0.2500 0.6000 0.8333 >> result10=a.^2 result10 = 1 4 9 16 25 36 >> result11=2.^a result11 = 2 4 8 16 32 64 3、用MATLAB求解下面的的方程组。 (1) ? ? ? ? ? ? ? ? ? ? ? ? - = ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? - - - - 1 7 4 13 2 3 1 5 11 2 2 2 3 15 9 2 1 2 7 4 3 2 1 x x x x >> A=[7 2 1 -2;9 15 3 -2;-2 -2 11 5;1 3 2 13] >> B=[4 7 -1 0] >> B=B' >> x=inv(A)*B (2) ? ? ? ? ? ? ? = - + + = - - = - + + = + + 5 6 5 3 3 3 3 2 8 2 1 w z y x w y x w z y x z y x >> A1=[1 1 1 0;1 2 1 -1;2 -1 0 -3;3 3 5 -6] >> B2=[1;8;3;5] >> x2=inv(A1)*B2 4、已知 ? ? ? ? ? ? ? ? ? ? ? ? - - - - = 13 2 3 1 5 11 2 2 2 3 15 9 2 1 2 7 A

matlab所有实验及答案

实验二 习题 1、 矩阵Y= ???? ? ???? ???3472123100451150425 ,给出元素1的全下标和单下标,并用函数练习全下标和单下标的转换,求出元素100的存储位置。取出子矩阵?? ? ? ??21301,并求该矩阵的维数。 解:命令为: Y=[5,2,4;0,15,1;45,100,23;21,47,3] Y(2,3) Y(10) sub2ind([4 3],2,3) [i,j]=ind2sub([4 3],10) find(Y==100) sub2ind([4 3],3,2) B=Y(2:2:4,3:-2:1) 或 B=Y([2 4],[3 1]) [m n]=size(Y) 2、 建立一个数值范围为0—100内4*5的整数随机矩阵。 求出大于50的元素的位置。 解:命令为: G=int8(100*rand(4,5)) find(G>50) 3、 已知矩阵A=[1 0 -1 ;2 4 1; -2 0 5],B=[0 -1 0;2 1 3;1 1 2] 求2A+B 、A 2-3B 、A*B 、B*A 、A .*B ,A/B 、A\B 解:命令为: A=[1 0 -1 ;2 4 1; -2 0 5] B=[0 -1 0;2 1 3;1 1 2] E=2*A+B F=A^2-3*B G=A*B H=B*A I=A.*B J=A/B K=A\B 4、 利用函数产生3*4阶单位矩阵和全部元素都为8的 4*4阶矩阵,并计算两者的乘积。 解:命令为: A=eye(3,4) B=8*ones(4) C=A*B 5、 创建矩阵a=????? ???????------7023021.5003.120498601 ,取出其前两列构成的矩阵b ,取出前两行构成矩阵c ,转置矩阵b 构成矩阵d ,计算a*b 、c

(完整版)matlab习题及答案(2)

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

matlab实验四及其答案

实验四GUI 设计专业 学号姓名成绩电气工程及其自 动化201409140305 杨诚1.创建GUI 绘制方程c bx ax y ++=2图形,需要显示绘图结果的坐标系窗口,还能够输入 a , b , c 的值和x 取值范围(最大值和最小值)。 回调函数的编写: a=str2num(get(handles.edit1,'String'));b=str2num(get(handles.edit2,'String'));c=str2num(get(handles.edit3,'String'));xmin=str2num(get(handles.edit4,'String'));xmax=str2num(get(handles.edit5,'String'));x=xmin:0.1:xmax;y=a*x.^2+b*x+c;plot(x,y); 设计的运行界面截图:

2.设计一个GUI,完成画出y=sin(x)、y=cos(x)和y=x 3.的波形图。回调函数的编写: x=-5:0.1:5 plot(x,sin(x)) x=-5:0.1:5 plot(x,cos(x))

x=-5:0.1:5 y=x.^3 plot(x,y)

设计的运行界面截图: 3.创建一个GUI,含有下拉菜单,下拉菜单中有背景颜色选择。回调函数的编写: yanse=get(handles.popupmenu1,'value'); switch yanse case1 set(gcf,'color','r'); case2 set(gcf,'color','y'); case3 set(gcf,'color','g'); end 设计的运行界面截图:

matlab基础练习题(带答案)

Matlab 基础练习题 常量、变量、表达式 1、 MATLAB 中,下面哪些变量名是合法的?( ) (A )_num (B )num_ (C )num- (D )-num 2、 在MA TLAB 中,要给出一个复数z 的模,应该使用( )函数。 (A )mod(z) (B )abs(z) (C )double(z) (D )angle(z) 3、 下面属于MATLAB 的预定义特殊变量的是?( ) (A )eps (B )none (C )zero (D )exp 4、 判断:在MA TLAB 的内存工作区中,存放一个英文字符 'a' 需要占用1个字节,存放 一个中文字符‘啊’需要占用2个字节。( 错,都是2个字节 ) 5、 判断:MA TLAB 中,i 和j ( 对 ) 6、 判断:MA TLAB 中,pi 代表圆周率,它等于3.14。( 错,后面还有很多位小数 ) 7、 在MA TLAB 中,若想计算的5 1)3.0sin(21+= πy 值,那么应该在MA TLAB 的指令窗中 输入的MA TLAB 指令是__y1=2*sin(0.3*pi)/(1+sqrt(5))_。 8、 在MA TLAB 中,a = 1,b = i ,则a 占_8__个字节,b 占_16_个字节,c 占________字 节。 9、 在MA TLAB 中,inf 的含义是__无穷大__,nan 的含义是__非数(结果不定)___。 数组 1、 在MA TLAB 中,X 是一个一维数值数组,现在要把数组X 中的所有元素按原来次序 的逆序排列输出,应该使用下面的( )指令。 (A )X[end:1] (B )X[end:-1:1] (C )X (end:-1:1) (D )X(end:1) 2、 在MA TLAB 中,A 是一个字二维数组,要获取A 的行数和列数,应该使用的MATLAB 的命令是( )。 (A )class(A) (B )sizeof(A) (C )size(A) (D )isa(A) 3、 在MATLAB 中,用指令x=1:9生成数组x 。现在要把x 数组的第二和第七个元素都 赋值为0,应该在指令窗中输入( ) (A )x([2 7])=(0 0) (B )x([2,7])=[0,0] (C )x[(2,7)]=[0 0] (D )x[(2 7)]=(0 0) 4、 在MA TLAB 中,依次执行以下指令:clear;A=ones(3,4); A(:)=[-6:5];这时, 若在指令窗中输入指令b=A(:,2)',那么,MATLAB 输出的结果应该是( ) (A )b = -3 -2 -1 (B )b = -2 -1 0 1 (C )b = -5 -1 3 (D )b = -5 -2 1 4 5、 在MA TLAB 中,A = 1:9,现在执行如下指令L1 = ~(A>5),则MATLAB 的执行结果应 该是L1 =___ 1 1 1 1 1 0 0 0 0___。

matlab课后习题答案

第4章数值运算 习题 4 及解答 1 根据题给的模拟实际测量数据的一组t和)(t y试用数值差分diff 或数值梯度gradient指令计算)(t y'曲线绘制 y',然后把)(t y和)(t 在同一张图上,观察数值求导的后果。(模拟数据从prob_data401.mat获得) 〖目的〗 ●强调:要非常慎用数值导数计算。 ●练习mat数据文件中数据的获取。 ●实验数据求导的后果 ●把两条曲线绘制在同一图上的一种方法。 〖解答〗 (1)从数据文件获得数据的指令 假如prob_data401.mat文件在当前目录或搜索路径上 clear load prob_data401.mat (2)用diff求导的指令 dt=t(2)-t(1); yc=diff(y)/dt; %注意yc的长度将比y短1 plot(t,y,'b',t(2:end),yc,'r') (3)用gradent求导的指令(图形与上相似) dt=t(2)-t(1); yc=gradient(y)/dt;

plot(t,y,'b',t,yc,'r') grid on 〖说明〗 ● 不到万不得已,不要进行数值求导。 ● 假若一定要计算数值导数,自变量增量dt 要取得比原有数据相对误差高1、2个量级 以上。 ● 求导会使数据中原有的噪声放大。 2 采用数值计算方法,画出dt t t x y x ? =0 sin )(在]10 ,0[区间曲线,并计算)5.4(y 。 〖提示〗 ● 指定区间内的积分函数可用cumtrapz 指令给出。 ● )5.4(y 在计算要求不太高的地方可用find 指令算得。 〖目的〗 ● 指定区间内的积分函数的数值计算法和cumtrapz 指令。 ● find 指令的应用。 〖解答〗 dt=1e-4; t=0:dt:10; t=t+(t==0)*eps; f=sin(t)./t; s=cumtrapz(f)*dt; plot(t,s,'LineWidth',3) ii=find(t==4.5); s45=s(ii) s45 =

matlab课后习题与答案

习题二 1.如何理解“矩阵是MATLAB最基本的数据对象”? 答:因为向量可以看成是仅有一行或一列的矩阵,单个数据(标量)可以看成是仅含一个元素的矩阵,故向量和单个数据都可以作为矩阵的特例来处理。 因此,矩阵是MATLAB最基本、最重要的数据对象。 2.设A和B是两个同维同大小的矩阵,问: (1)A*B和A.*B的值是否相等? 答:不相等。 (2)A./B和B.\A的值是否相等? 答:相等。 (3)A/B和B\A的值是否相等? 答:不相等。 (4)A/B和B\A所代表的数学含义是什么? 答:A/B等效于B的逆右乘A矩阵,即A*inv(B),而B\A等效于B矩阵的逆左乘A矩阵,即inv(B)*A。 3.写出完成下列操作的命令。 (1)将矩阵A第2~5行中第1, 3, 5列元素赋给矩阵B。 答:B=A(2:5,1:2:5); 或B=A(2:5,[1 3 5]) (2)删除矩阵A的第7号元素。 答:A(7)=[] (3)将矩阵A的每个元素值加30。 答:A=A+30; (4)求矩阵A的大小和维数。 答:size(A); ndims(A); (5)将向量t的0元素用机器零来代替。 答:t(find(t==0))=eps; (6)将含有12个元素的向量x转换成34 矩阵。 答:reshape(x,3,4); (7)求一个字符串的ASCII码。 答:abs(‘123’); 或double(‘123’); (8)求一个ASCII码所对应的字符。 答:char(49);

4. 下列命令执行后,L1、L2、L3、L4的值分别是多少? A=1:9;B=10-A;... L1=A==B; L2=A<=5; L3=A>3&A<7; L4=find(A>3&A<7); 答:L1的值为[0, 0, 0, 0, 1, 0, 0, 0, 0] L2的值为[1, 1, 1, 1, 1, 0, 0, 0, 0] L3的值为[0, 0, 0, 1, 1, 1, 0, 0, 0] L4的值为[4, 5, 6] 5. 已知 23100.7780414565532503269.5454 3.14A -????-??=????-?? 完成下列操作: (1) 取出A 的前3行构成矩阵B ,前两列构成矩阵C ,右下角32?子矩阵构 成矩阵D ,B 与C 的乘积构成矩阵E 。 答:B=A(1:3,:); C=A(:,1:2); D=A(2:4,3:4); E=B*C; (2) 分别求E=10&A<25)。 答:E=10&A<25)=[1; 5]。 6. 当A=[34, NaN, Inf, -Inf, -pi, eps, 0]时,分析下列函数的执行结果:all(A), any(A),isnan(A),isinf(A),isfinite(A)。 答:all(A)的值为0 any(A) 的值为1 isnan(A) 的值为[0, 1, 0, 0, 0, 0, 0] isinf(A) 的值为[0, 0, 1, 1, 0, 0, 0] isfinite(A) 的值为[1, 0, 0,0, 1, 1, 1]

MATLAB实验题目及答案

实验二一维二维数组的创建和寻访 一、实验目的 1、掌握一维数组、二维数组创建和寻访的几种方法。 2、区别数组运算和矩阵运算的差别。 3、熟悉执行数组运算的常用数组操作函数。 4、掌握数组运算中的关系和逻辑操作及常用的关系、逻辑函数。 5、掌握“非数”、“空”数组在MA TLAB中的应用。 二、实验主要仪器与设备 装配有MA TLAB7.6软件的计算机 三、预习要求 做实验前必须认真复习第三章MATLAB的数值数组及向量化运算功能。 四、实验内容及实验步骤 1、一维数组的创建方法有哪几种?举例说明。 答:一维数组的创建方法有: ①递增/递减型一维数组的创建:冒号生成法:x=a:inc:b 线性(或对数)定点法:x=linspace(a,b,n),x=logspace(a,b,n) ②逐个元素输入法:如x=[0.1,sin(pi/5),-exp(-3),-2*pi] ③运用MA TLAB函数生成法:例ones,rand等。 2、输入以下指令,并写出运行结果。本例演示:数组元素及子数组的各种标识和寻访格式;冒号的使用;end的作用。 A=zeros(2,6) %创建(2×6)的全零数组 A(:)=1:12 %赋值号左边:单下标寻访(2×6) 数组A的全部12个元素 %赋值号右边:拥有12个元素的一维数组 A(2,4) %双下标:A数组的第2行第4列元素 A(8) %单下标:数组A的第8个元素 A(: , [1,3]) %双下标:显示A的“第1列和第3列上全部行的元素” A([1, 2, 5, 6]') %单下标:把A数组第1,2,5,6个元素排成列向量 A(: , 4:end) %双下标:显示A的“从第4起到最后一列上全部行的元素” %在此end用于“列标识”,它表示“最后一列” A(2,1:2:5)=[-1, -3, -5] %把右边的3个数分别赋向A数组第2行的第1,3,5个元素位置 B=A([1, 2, 2, 2], [1, 3, 5]) %取A数组的1,3,5列的第1行元素作为B的第1行 %取A数组的1,3,5列的第2行分别作为B的第2,3,4行 L=A<3 %产生与A维数相同的“0,1”逻辑数组 A(L)=NaN %把逻辑1标识的位置上的元素赋为“非数” 运行结果: A = 0 0 0 0 0 0 0 0 0 0 0 0

汽车理论课后作业答案MATLAB

汽车理论作业MA TLAB过程 汽车驱动力与阻力平衡图 加速度倒数-速度曲线图 0 10 20 30 40 50 60 70 80 90 100 u

汽车功率平衡图 u/(km/h)最高档等速百公里油耗曲线 Ua/(km/h)

燃油积极性-加速时间曲线 源程序: 《第一章》 m=3880; g=9.8; r=0.367; x=0.85; f=0.013; io=5.83; CdA=2.77; lf=0.218; Iw1=1.798; Iw2=3.598; Iw=lw1+lw2; ig=[6.09 3.09 1.71 1.00]; %变速器传动比 L=3.2; a=1.947; hg=0.9; n=600:1:4000;

T=-19.313+295.27* n/1000-165.44*(门/1000)人2+40.874*(门/1000)人3-3.8445*( n/IOOO).%; Ft1=T*ig(1)*io*x/r; %计算各档对应转速下的驱动力 Ft2=T*ig(2)*io*x/r; Ft3=T*ig(3)*io*x/r; Ft4=T*ig(4)*io*x/r; u1=0.377*r*n/(io*ig(1)); u2=0.377*r*n/(io*ig(2)); u3=0.377*r*n/(io*ig(3)); u4=0.377*r*n/(io*ig(4)); u=0:130/3400:130; F仁m*g*f+CdA*u”2/21.15;%计算各档对应转速下的驱动阻力 F2=m*g*f+CdA*u2.A2/21.15; F3=m*g*f+CdA*u3.A2/21.15; F4=m*g*f+CdA*u4.A2/21.15; figure(1); plot(u1,Ft1, '-r' ,u2,Ft2, '-m' ,u3,Ft3, '-k' ,u4,Ft4, '-b' ,u1,F1, '-r' ,u2,F2, '-m' ,u3,F3, ' k' ,u4,F4, '-b' , 'LineWidth' ,2) title( ' 汽车驱动力与阻力平衡图' ); xlabel( 'u_{a}/km.hA{-1}' ) ylabel( 'F/N' ) gtext( 'F_{t1}' ) gtext( 'F_{t2}' ) gtext( 'F_{t3}' ) gtext( 'F_{t4}' ) gtext( 'F_{f}+F_{w}' ) %由汽车驱动力与阻力平衡图知,他们无交点,u4在最大转速时达到最大 umax=u4(3401) Ft1max=max(Ft1); imax=(Ft1max-m*g*f)/(m*g) disp( ' 假设是后轮驱动' ); C=imax/(a/L+hg*imax/L) % 附着率 delta1=1+(Iw1+Iw2)/(m*rA2)+If*ig(1)*rA2*ioA2*x/(m*rA2); delta2=1+(Iw1+Iw2)/(m*rA2)+If*ig(2)*rA2*ioA2*x/(m*rA2); delta3=1+(Iw1+Iw2)/(m*rA2)+If*ig(3)*rA2*ioA2*x/(m*rA2); delta4=1+(Iw1+Iw2)/(m*rA2)+If*ig(4)*rA2*ioA2*x/(m*rA2); a1=(Ft1-F1)/(delta1*m); %加速度 a2=(Ft2-F2)/(delta2*m); a3=(Ft3-F3)/(delta3*m); a4=(Ft4-F4)/(delta4*m); h1=1./a1; %加速度倒数 h2=1./a2; h3=1./a3; h4=1./a4; figure(2);

matlab练习题和答案

matlab练习题和答案 控制系统仿真实验 Matlab部分实验结果 目录 实验一 MATLAB基本操 作 ............................................................................................ 1 实验二 Matlab编程 .................................................................................................... 5 实验三Matlab底层图形控制 (6) 实验四控制系统古典分析.............................................................................................12 实验五控制系统现代分析 . (15) 实验六 PID控制器的设 计 ...........................................................................................19 实验七系统状态空间设计.............................................................................................23 实验九直流双闭环调速系统仿真 . (25) 实验一 MATLAB基本操作 1 用MATLAB可以识别的格式输入下面两个矩阵 1233,,1443678,i,,,,2357,,,,2335542,i,,,, A,1357B,,,2675342, i,,3239,,,,189543,,,,1894,, 再求出它们的乘积矩阵C,并将C矩阵的右下角2×3子矩阵赋给D矩阵。赋值完成后,调 用相应的命令查看MATLAB工作空间的占用情况。 A=[1,2,3,3;2,3,5,7;1,3,5,7;3,2,3,9;1,8,9,4];

Matlab实验指导书(含答案)汇总

实验一:Matlab操作环境熟悉 一、实验目的 1.初步了解Matlab操作环境。 2.学习使用图形函数计算器命令funtool及其环境。 二、实验内容 熟悉Matlab操作环境,认识命令窗口、内存工作区窗口、历史命令窗口;学会使用format命令调整命令窗口的数据显示格式;学会使用变量和矩阵的输入,并进行简单的计算;学会使用who和whos命令查看内存变量信息;学会使用图形函数计算器funtool,并进行下列计算: 1.单函数运算操作。 求下列函数的符号导数 (1) y=sin(x); (2) y=(1+x)^3*(2-x); 求下列函数的符号积分 (1) y=cos(x); (2) y=1/(1+x^2); (3) y=1/sqrt(1-x^2); (4) y=(x-1)/(x+1)/(x+2); 求反函数 (1) y=(x-1)/(2*x+3); (2) y=exp(x); (3) y=log(x+sqrt(1+x^2)); 代数式的化简 (1) (x+1)*(x-1)*(x-2)/(x-3)/(x-4); (2) sin(x)^2+cos(x)^2; (3) x+sin(x)+2*x-3*cos(x)+4*x*sin(x); 2.函数与参数的运算操作。 从y=x^2通过参数的选择去观察下列函数的图形变化 (1) y1=(x+1)^2 (2) y2=(x+2)^2 (3) y3=2*x^2 (4) y4=x^2+2 (5) y5=x^4 (6) y6=x^2/2 3.两个函数之间的操作 求和 (1) sin(x)+cos(x) (2) 1+x+x^2+x^3+x^4+x^5 乘积 (1) exp(-x)*sin(x)

MATLAB课后习题集附标准答案

第2章MATLAB概论 1、与其他计算机语言相比较,MA TLAB语言突出的特点是什么? 答:起点高、人机界面适合科技人员、强大而简易的作图功能、智能化程度高、功能丰富,可扩展性强. 2、MA TLAB系统由那些部分组成? 答:开发环境、MATLAB数学函数库、MATLAB语言、图形功能、应用程序接口 3、安装MATLAB时,在选择组件窗口中哪些部分必须勾选,没有勾选的部分以后如何补安装? 答:在安装MATLAB时,安装内容由选择组件窗口中各复选框是否被勾选来决定,可以根据自己的需要选择安装内容,但基本平台(即MATLAB选项)必须安装.第一次安装没有选择的内容在补安装时只需按照安装的过程进行,只是在选择组件时只勾选要补装的组件或工具箱即可.矚慫润厲钐瘗睞枥庑赖。 4、MATLAB操作桌面有几个窗口?如何使某个窗口脱离桌面成为独立窗口?又如何将脱离出去的窗口重新放置到桌面上? 答:在MATLAB操作桌面上有五个窗口,在每个窗口的右下角有两个小按钮,一个是关闭窗口的Close 按钮,一个是可以使窗口称为独立的Undock按钮,点击Undock按钮就可以使该窗口脱离桌面称为独立窗口,在独立窗口的view菜单中选择Dock,菜单项就可以将独立的窗口重新防止的桌面上. 5、如何启动M文件编辑/调试器? 答:在操作桌面上选择“建立新文件”或“打开文件”操作时,M文件编辑/调试器将被启动.在命令窗口中键入edit命令时也可以启动M文件编辑/调试器. 6、存储在工作空间中的数组能编辑吗?如何操作? 答:存储在工作空间的数组可以通过数组编辑器进行编辑:在工作空间浏览器中双击要编辑的数组名打开数组编辑器,再选中要修改的数据单元,输入修改内容即可.彈贸摄尔霁毙攬砖卤庑。 7、命令历史窗口除了可以观察前面键入的命令外,还有什么用途? 答:命令历史窗口除了用于查询以前键入的命令外,还可以直接执行命令历史窗口中选定的内容、将选定的内容拷贝到剪贴板中、将选定内容直接拷贝到M文件中.謀荞抟箧飆鐸怼类蒋薔。 8、如何设置当前目录和搜索路径,在当前目录上的文件和在搜索路径上的文件有什么区别? 答:当前目录可以在当前目录浏览器窗口左上方的输入栏中设置,搜索路径可以通过选择操作桌面的file菜单中的Set Path菜单项来完成.在没有特别说明的情况下,只有当前目录和搜索路径上的函数和文件能够被MATLAB运行和调用,如果在当前目录上有与搜索路径上相同文件名的文件时则优先执行当前目录上的文件,如果没有特别说明,数据文件将存储在当前目录上.厦礴恳蹒骈時盡继價骚。 9、在MA TLAB中有几种获得帮助的途径? 答:(1)帮助浏览器:选择view菜单中的Help菜单项或选择Help菜单中的MATLAB Help菜单项可以打开帮助浏览器.茕桢广鳓鯡选块网羈泪。 (2)help命令:在命令窗口键入“help”命令可以列出帮助主题,键入“help 函数名”可以得到鹅娅尽損鹌惨歷茏鴛賴。 指定函数的在线帮助信息. (3)lookfor命令:在命令窗口键入“lookfor 关键词”可以搜索出一系列与给定关键词相关的命令和函数.籟丛妈羥为贍偾蛏练淨。 (4)模糊查询:输入命令的前几个字母,然后按Tab键,就可以列出所有以这几个字母开始的命令和函数. 注意:lookfor和模糊查询查到的不是详细信息,通常还需要在确定了具体函数名称后用help命令显示详细信息.預頌圣鉉儐歲龈讶骅籴。

相关文档
最新文档