当前位置:文档之家› MATLAB教程2012a第3章习题解答 张志涌

MATLAB教程2012a第3章习题解答 张志涌

MATLAB教程2012a第3章习题解答 张志涌
MATLAB教程2012a第3章习题解答 张志涌

第3章 数值阵列及其运算

习题3及解答

1 在MATLAB 中,先运行指令A=magic(3), B=[1,2,1;3,4,3;5,6,7]生成阵列33?A ,33?B ,然后根据运行结果回答以下问题:

〖目的〗

● 体验矩阵乘法次序不可交换;

● 体验矩阵左除、右除的不同;

● 体验数组乘法次序可交换;

● 体验数组左除、右除的相同性;

● 体验矩阵乘法与数组乘法的根本性差别

● 体验矩阵求逆的两种方法;

● 体验数组“逆”概念

〖解答〗

A=magic(3), B=[1,2,1;3,4,3;5,6,7]

%创建阵列

A =

8 1 6

3 5 7

4 9 2

B =

1 2 1

3 4 3

5 6 7

(1)

C1amb=A*B

%相乘矩阵的次序不可交换

C1bma=B*A

C1amb =

41 56 53

53 68 67

41 56 45

C1bma =

18 20 22

48 50 52

86 98 86

(2)

C2adb=A\B %矩阵左除和右除根本不同

C2bda=B/A

C2adb =

0.0333 0.1000 0.1611

0.5333 0.6000 0.7444

0.0333 0.1000 -0.1722

C2bda =

0.0056 0.0889 0.1722

0.1389 0.2222 0.3056

0.2333 0.7333 0.2333

(3)

C3amb=A.*B %数组乘法不分左、右乘,因为是“元素对元素的运算”C3bma=B.*A

C3amb =

8 2 6

9 20 21

20 54 14

C3bma =

8 2 6

9 20 21

20 54 14

(4)

C4adb=A.\B %数组除法不分左、右除,因为是“元素对元素的运算”C4bda=B./A

C4adb =

0.1250 2.0000 0.1667

1.0000 0.8000 0.4286

1.2500 0.6667 3.5000

C4bda =

0.1250 2.0000 0.1667

1.0000 0.8000 0.4286

1.2500 0.6667 3.5000

(5)

C5ada=A\A %相当于inv(A)*A,所以得到“单位阵”

C5adda=A.\A %相当于“数组逆”乘数组,得到“单位数组”

C5ada =

1 0 0

0 1 0

0 0 1

C5adda =

1 1 1

1 1 1

1 1 1

(6)

C6ade=A\eye(3) %矩阵求逆的代数方程法

C6inv=inv(A) %直接利用求逆指令。两者结果相同

C6ade =

0.1472 -0.1444 0.0639

-0.0611 0.0222 0.1056

-0.0194 0.1889 -0.1028

C6inv =

0.1472 -0.1444 0.0639

-0.0611 0.0222 0.1056

-0.0194 0.1889 -0.1028

(7)

A

C7add1=A.\1 %求“数组逆”

C7ade=A\eye(3) %求“矩阵逆”

A =

8 1 6

3 5 7

4 9 2

C7add1 =

0.1250 1.0000 0.1667

0.3333 0.2000 0.1429

0.2500 0.1111 0.5000

C7ade =

0.1472 -0.1444 0.0639

-0.0611 0.0222 0.1056

-0.0194 0.1889 -0.1028

2 在MATLAB中,先运行A=[1, 2; 3, 4],b=0.5,C=[4, 2; 1, 0.5], 然后

根据计算结果回答以下问题:

(提示:根据对计算结果的目测回答问题)

〖目的〗

●数组运算和矩阵运算的不同。

●如何判断两个双精度数组是否相等。

●norm指令的应用。

〖解答〗

A=[1, 2; 3, 4],b=0.5,C=[4, 2; 1, 0.5] %创建数据

A =

1 2

3 4

b =

0.5

C =

4 2

1 0.5

(1)

F1=A^b %平方根矩阵,可用F1*F1验算

F1a=A.^b %平方根数组,可用F1a.*F1a验算

F1 =

0.55369 + 0.46439i 0.80696 - 0.21243i

1.2104 - 0.31864i 1.7641 + 0.14575i

F1a =

1 1.4142

1.7321 2

(2)

F2=b^A %标量底矩阵指数的求幂

F2a=b.^A %标量底数组指数的求幂

F2 =

0.99095 -0.44225

-0.66337 0.32759

F2a =

0.5 0.25

0.125 0.0625

(3)

F3a=A.^C %数组底数组指数的求幂

F3a =

1 4

3 2

F3=A^C %矩阵底矩阵指数的求幂运算不存在

??? Error using ^

Inputs must be a scalar and a square matrix.

To compute elementwise POWER, use POWER (.^) instead.

3 在MATLAB中,先运行rng default, A=randn(3,3)+1j*randn(3,3)

生成)3

3(?的复数矩阵A,然后根据计算结果回答以下问题:

(提示:判断本题计算结果是否相同,用目测法即可)

〖目的〗

●体验共轭转置、非共轭转置、共轭运算的产别;

●建立起MATLAB数据的基本处理单元是“复数阵列(包括矩阵、数组)”的概念。

〖解答〗

rng default %为保证计算结果可重复

A=randn(3,3)+1j*randn(3,3) %创建(3*3)复数数组

A =

0.53767 + 2.7694i 0.86217 + 0.7254i -0.43359 - 0.20497i

1.8339 - 1.3499i 0.31877 - 0.063055i 0.34262 - 0.12414i -

2.2588 +

3.0349i -1.3077 + 0.71474i 3.5784 + 1.4897i

(1)

C11=A' %复数矩阵的共轭转置

C12=A.' %复数数组的非共轭转置

C13=conj(A) %复数数组的共轭运算

C14=conj(A.') %复数矩阵共轭转置的另一种指令形式。结果与C11相同

C11 =

0.53767 - 2.7694i 1.8339 + 1.3499i -2.2588 - 3.0349i 0.86217 - 0.7254i 0.31877 + 0.063055i -1.3077 - 0.71474i -0.43359 + 0.20497i 0.34262 + 0.12414i 3.5784 - 1.4897i

C12 =

0.53767 + 2.7694i 1.8339 - 1.3499i -2.2588 + 3.0349i 0.86217 + 0.7254i 0.31877 - 0.063055i -1.3077 + 0.71474i -0.43359 - 0.20497i 0.34262 - 0.12414i 3.5784 + 1.4897i

C13 =

0.53767 - 2.7694i 0.86217 - 0.7254i -0.43359 + 0.20497i

1.8339 + 1.3499i 0.31877 + 0.063055i 0.34262 + 0.12414i -

2.2588 -

3.0349i -1.3077 - 0.71474i 3.5784 - 1.4897i

C14 =

0.53767 - 2.7694i 1.8339 + 1.3499i -2.2588 - 3.0349i 0.86217 - 0.7254i 0.31877 + 0.063055i -1.3077 - 0.71474i -0.43359 + 0.20497i 0.34262 + 0.12414i 3.5784 - 1.4897i

(2)

C21=A*A' %生成埃米特矩阵(复数共轭对称阵),其对角元一定为正实数

C22=A*A.' %对称的复数数组,非共轭,对角元不保证是正实数

C23=A.*conj(A) %正实数数组,每个元素是原因子数组对应元素的模平方

C21 =

9.4584 -2.6464 + 5.9662i 4.7246 - 9.5399i -2.6464 - 5.9662i 5.4237 -7.6601 - 3.6165i 4.7246 + 9.5399i -7.6601 + 3.6165i 31.558 C22 =

-7.0176 + 4.4067i 4.871 + 4.5135i -12.512 - 6.3357i 4.871 + 4.5135i 1.7406 - 5.0763i 0.99354 + 8.9913i -12.512 - 6.3357i 0.99354 + 8.9913i 7.6765 - 4.9187i

C23 =

7.9589 1.2696 0.23001

5.1853 0.10559 0.1328

14.313 2.2209 15.024

4 在时间区间 [0,10]中,绘制t

-

=曲线。要求分别采取“标

15.0-

cos

e

y t2

量循环运算法”和“数组运算法”编写两段程序绘图。(注意:体验数组运算的简捷。)

〖目的〗

●加强理解数组运算的机理和应用。

●初步使用subplot, plot, xlabel, ylabel等指令绘图。

〖解答〗

%标量循环运算法

t=linspace(0,10,200);

N=length(t);

y1=zeros(size(t));

for k=1:N

y1(k)=1-exp(-0.5*t(k))*cos(2*t(k));

end

subplot(1,2,1),plot(t,y1),xlabel('t'),ylabel('y1'),grid on

%数组运算法

y2=1-exp(-0.5*t).*cos(2*t);

5 要求在闭区间]2,0[ 上产生具有10个等距采样点的一维数组。试

用两种不同的指令实现。

〖目的〗

●数值计算中产生自变量采样点的两个常用指令的异同。

〖解答〗

%方法一

t1=linspace(0,2*pi,10)

%方法二

t2=0:2*pi/9:2*pi %要注意采样间距的选择,如这里的2*pi/9.

t1 =

Columns 1 through 7

0 0.6981 1.3963 2.0944 2.7925 3.4907 4.1888 Columns 8 through 10

4.8869

5.5851

6.2832

t2 =

Columns 1 through 7

0 0.6981 1.3963 2.0944 2.7925 3.4907 4.1888 Columns 8 through 10

4.8869

5.5851

6.2832

6 由指令rng('default'),A=rand(3,5)生成二维数组A,试求该数组

中所有大于0.5的元素的位置,分别求出它们的“全下标”和“单序号”。

〖目的〗

●数组下标的不同描述:全下标和单序号。

●sub2ind, int2str, disp的使用。

●随机发生器的状态控制:保证随机数的可复现性。

〖解答〗

rng('default')

A=rand(3,5)

[ri,cj]=find(A>0.5);

id=sub2ind(size(A),ri,cj);

ri=ri';cj=cj';

disp(' ')

disp('大于0.5的元素的全下标')

disp(['行号 ',int2str(ri)])

disp(['列号 ',int2str(cj)])

disp(' ')

disp('大于0.5的元素的单下标')

disp(id')

A =

0.8147 0.9134 0.2785 0.9649 0.9572

0.9058 0.6324 0.5469 0.1576 0.4854

0.1270 0.0975 0.9575 0.9706 0.8003

大于0.5的元素的全下标

行号 1 2 1 2 2 3 1 3 1 3

列号 1 1 2 2 3 3 4 4 5 5

大于0.5的元素的单下标

1 2 4 5 8 9 10 12 13 15

7 采用默认全局随机流,写出产生长度为1000的“等概率双位(即

取-1,+1)取值的随机码”程序指令,并给出 -1码的数目。

〖目的〗

●两种基本随机发生器的使用。

●关系运算产生逻辑数组——可用于数组的元素的标识和寻访。

●逻辑数组的应用。

●如何判断两个整数数组是否相等。

〖解答〗

(1)运用均匀随机数解题法——解法1

rng default %为以下结果重现而设;产生默认随机流。详见第4.3.2节

A=rand(1,1000);

a=2*(A>0.5)-1;

Na=sum(a==-1)

Na =

512

(2)运用正态随机数解题法——解法2

randn('state',123)

B=randn(1,1000);

b=2*(B>0)-1;

Nb=sum(b==-1)

Nb =

462

(3)直接发生法——解法3

c=randsrc(1,1000,[-1,1]);

Nc=sum(c==-1)

Nc =

482

8 先运行clear,format long,rng('default'),A=rand(3,3),然后根据A

写出两个矩阵:一个对角阵B,其相应元素由A的对角元素构成;

另一个矩阵C,其对角元素全为0,而其余元素与对应的A阵元素相同。

〖目的〗

●常用指令diag的使用场合。

〖解答〗

clear,

format long

rng('default')

A=rand(3,3)

B=diag(diag(A))

C=A-B

A =

0.814723686393179 0.913375856139019 0.278498218867048

0.905791937075619 0.632359246225410 0.546881519204984

0.126986816293506 0.097540404999410 0.957506835434298

B =

0.814723686393179 0 0

0 0.632359246225410 0

0 0 0.957506835434298

C =

0 0.913375856139019 0.278498218867048

0.905791937075619 0 0.546881519204984

0.126986816293506 0.097540404999410 0

9 先运行指令x=-3*pi:pi/15:3*pi; y=x; [X,Y]=meshgrid(x,y);

warning off; Z=sin(X).*sin(Y)./X./Y; 产生矩阵Z。(1)请问矩阵Z中有多少个“非数”数据?(2)用指令surf(X,Y,Z); shading interp观察所绘的图形。(3)请写出绘制相应的“无裂缝”图形的全部指令。

〖目的〗

●初步感受三维曲面的绘制方法。

●非数NaN的产生,非数的检测,和对图形的影响。

●sum的应用。

●eps如何克服“被零除”的尴尬。

〖解答〗

x=-3*pi:pi/15:3*pi;

y=x;

[X,Y]=meshgrid(x,y);

warning off

Z=sin(X).*sin(Y)./X./Y;

NumOfNaN=sum(sum(isnan(Z))) %计算“非数”数目

subplot(1,2,1),surf(X,Y,Z),shading interp,title('有缝图')

%产生无缝图

XX=X+(X==0)*eps;

YY=Y+(Y==0)*eps;

ZZ=sin(XX).*sin(YY)./XX./YY;

subplot(1,2,2),surf(XX,YY,ZZ),shading interp,title('无缝图')

NumOfNaN =

181

10 下面有一段程序,企图用来解决如下计算任务:有矩阵

?????

???????++++=k k k k k k k k 10229221911 A ,当k 依次取10, 9, 8, 7, 6, 5, 4, 3, 2, 1时,计算矩阵k A “各列元素的和”,并把此求和结果存放为矩阵Sa

的第k 行。例如3=k 时,A 阵为????

??????306329522841 ,此时它各列元素 的

和是一个)101(?行数组[]87156 ,并把它保存为Sa 的第3行。问题:该段程序的计算结果对吗?假如计算结果不正确,请指出错误发生的根源,并改正之。

〖目的〗

● 正确理解sum 的工作机理。

● reshape 的应用。

〖解答〗

(1)企图用以下程序完成题目要求。

for k=10:-1:1

A=reshape(1:10*k,k,10);

Sa(k,:)=sum(A);

end

Sa

Sa =

55 55 55 55 55 55 55 55 55 55 3 7 11 15 19 23 27 31 35 39 6 15 24 33 42 51 60 69 78 87 10 26 42 58 74 90 106 122 138 154

15 40 65 90 115 140 165 190 215 240 21 57 93 129 165 201 237 273 309 345 28 77 126 175 224 273 322 371 420 469 36 100 164 228 292 356 420 484 548 612 45 126 207 288 369 450 531 612 693 774 55 155 255 355 455 555 655 755 855 955

(2)正确性分析

除k=1外,计算所得Sa 所有行的结果都正确。但k=1时,]10,,2,1[1 A ,Sa 的第1行应该与1A 相同。

上述程序的错误是对sum 理解不正确。sum 对二维数组,求和按列施行;而对一维数组,不管行数组或列数组,总是求那数组所有元素的和。

正确的程序应该写成

for k=10:-1:1

A=reshape(1:10*k,k,10);

Sa(k,:)=sum(A);

if k==1

Sa(k,:)=A;

end

end

Sa

Sa =

1 2 3 4 5 6 7 8 9 10 3 7 11 15 19 23 27 31 35 39 6 15 24 33 42 51 60 69 78 87 10 26 42 58 74 90 106 122 138 154 15 40 65 90 115 140 165 190 215 240 21 57 93 129 165 201 237 273 309 345 28 77 126 175 224 273 322 371 420 469 36 100 164 228 292 356 420 484 548 612 45 126 207 288 369 450 531 612 693 774 55 155 255 355 455 555 655 755 855 955

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程序设计第三章课后习题答案

1. p138 第6题在同一坐标轴中绘制下列两条曲线并标注两曲线交叉点。 >> t=0:0.01:pi; >> x1=t; >> y1=2*x1-0.5; >> x2=sin(3*t).*cos(t); >> y2=sin(3*t).*sin(t); >> plot(x1,y1,'r-',x2,y2,'g-') >> axis([-1,2,-1.5,1]) >> hold on >> s=solve('y=2*x-0.5','x=sin(3*t)*cos(t)','y=sin(3*t)*sin(t)'); >> plot(double(s.x),double(s.y),'*'); 截图:

p366 第4题绘制极坐标曲线,并分析对曲线形状的影响。 function [ output_args ] = Untitled2( input_args ) %UNTITLED2 Summary of this function goes here % Detailed explanation goes here theta=0:0.01:2*pi; a=input('请输入a的值:'); b=input('请输入b的值:'); n=input('请输入n的值:'); rho=a*sin(b+n*theta); polar(theta,rho,'k'); end 下面以a=1,b=1,n=1的极坐标图形为基础来分析a、b、n的影响。

对a的值进行改变:对比发现a只影响半径值的整倍变化 对b的值进行改变:对比发现b的值使这个圆转换了一定的角度

对n的值进行改变:对比发现当n>=2时有如下规律 1、当n为整数时,图形变为2n个花瓣状的图形 2、当n为奇数时,图形变为n个花瓣状的图形 分别让n为2、3、4、5

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第三章习题解答

3-1 >> N=[1 2 3 4 5] N = 1 2 3 4 5 (1) >> N1=2*N N1 = 2 4 6 8 10 (2) >> N2=N/2 N2 = 0.5000 1.0000 1.5000 2.0000 2.5000 (3) >> N3=1./N N3 = 1.0000 0.5000 0.3333 0.2500 0.2000 (4) >> N4=1./(N.*N) N4 = 1.0000 0.2500 0.1111 0.0625 0.0400 3-2 m=input('请输入一个三位整数'); i=fix(m/100); j=mod(fix(m/10),10); k=mod(m,10); n=100*k+10*j+i; disp('反向输出的数为'); disp(n); 3-3 用if来实现 score=input('请输入成绩'); if score>100|score<0 disp('成绩必须>=0且<=100'); elseif score>=90&score<=100 disp('A');

elseif score>=80&score<=89 disp('B'); elseif score>=70&score<=79 disp('C'); elseif score>=60&score<=69 disp('D'); else disp('E'); end 用switch来实现 score=input('请输入成绩'); switch score case num2cell(90:100) disp('A'); case num2cell(80:89) disp('B'); case num2cell(70:79) disp('C'); case num2cell(60:69) disp('D'); case num2cell(0:59)%case{0,1,2,3,4,5}也可以 disp('E'); otherwise disp('成绩必须>=0且<=100'); end 注意:以下程序是错的 score=input('请输入成绩'); switch fix(score/10) case {9,10} disp('A'); case {8} disp('B'); case {7} disp('C'); case {6} disp('D'); case num2cell(0:5)%case{0,1,2,3,4,5}也可以

第3章 MATLAB矩阵处理_习题答案

第3章 MATLAB矩阵处理 习题3 一、选择题 1.产生对角线上全为1,其余为0的2行3列矩阵的命令是()。C A.ones(2,3) B.ones(3,2) C.eye(2,3) D.eye(3,2) 2.建立3阶单位矩阵A的命令是()。A A.A=eye(3) B.A=eye(3,1)C.A=eye(1,3)D.A=ones(3) 3.产生和A同样大小的幺矩阵的命令是()。B A.eye(size(A)) B.ones(size(A)) C.size(eye(A))D.size(ones(A)) 4.建立5×6随机矩阵A,其元素为[100,200]范围内的随机整数,相应的命令是()。D A.A=fix(100+200*rand(5,6)) B.A=fix(200+100*rand(5,6)) C.A= fix(100+300*rand(5,6)) D.A=fix(100+101*rand(5,6)) 5.产生均值为1、方差为0.2的500个正态分布的随机数,相应的命令是()。A。 A.1+sqrt(0.2)*randn(25,20)B.1+0.2*randn(500) C.0.2+randn(500)D.0.2+randn(25,20) 6.从矩阵A提取主对角线元素,并以这些元素构成对角阵B,相应的命令是()。B A.B=diag(A) B.B=diag(diag(A)) C.B=diag(triu(A)) D.B=diag(tril(A)) 7.在MA TLAB中定义A=randn(5,4,3,2),则下列关于A的操作中正确的是()。D A.y=eig(A) B.y=reshape(A,[4 3 6 7]) C.y=cond(A) D.y=sin(A) 8.在命令行窗口中分别输入下列命令,对应输出结果正确的是()。C A.命令x=[-2:2]',结果x=[-2 -1 0 1 2] B.命令x=zeros(1,2);x>0,结果ans=1 C.命令y=diag(eye(3),1)',结果y=[0 0] D.命令5-10*rand(1,2),结果ans=[-5.0501 1.2311] 9.将矩阵A对角线元素加30的命令是()。A A.A+30*eye(size(A)) B.A+30*eye(A)

Matlab 第三章 习题 答案

第三章 3.5计算多项式乘法()()222254x x x x ++++ >> a=[1 2 2]; >> b=[1 5 4]; >> c=conv(a,b) c = 1 7 16 18 8 poly2sym(c) ans = x^4 + 7*x^3 + 16*x^2 + 18*x + 8 3.6计算多项式的除法()()3231368/4x x x x ++++ >> a=[3 13 6 8]; >> b=[1 4]; >> [q r]=deconv(a,b) q = 3 1 2 r = 0 0 0 0 >> poly2sym(q) ans = 3*x^2 + x + 2 3.8求多项式4324121459x x x x --++的微分和积分 (1)微分:>> a=[4 -12 -14 5 9]; >> b=polyder(a) b = 16 -36 -28 5 >> poly2sym(b) ans = 16*x^3 - 36*x^2 - 28*x + 5 (2)积分:polyint(a) ans = 0.8000 -3.0000 -4.6667 2.5000 9.0000 0 >> poly2sym(ans) ans = (4*x^5)/5 - 3*x^4 - (14*x^3)/3 + (5*x^2)/2 + 9*x

3.9求代数方程32349x x x +-+=0的解。 >> [x]=solve('x^3+3*x^2-4*x+9') x = - 7/(3*(15/2 - (108^(1/2)*4703^(1/2))/108)^(1/3)) - (15/2 - 1/108*108^(1/2)*4703^(1/2))^(1/3) - 1 7/(6*(15/2 - (108^(1/2)*4703^(1/2))/108)^(1/3)) + (15/2 - (108^(1/2)*4703^(1/2))/108)^(1/3)/2 - (3^(1/2)*i*(7/(3*(15/2 - (108^(1/2)*4703^(1/2))/108)^(1/3)) - (15/2 - 1/108*108^(1/2)*4703^(1/2))^(1/3)))/2 - 1 7/(6*(15/2 - (108^(1/2)*4703^(1/2))/108)^(1/3)) + (15/2 - (108^(1/2)*4703^(1/2))/108)^(1/3)/2 + (3^(1/2)*i*(7/(3*(15/2 - (108^(1/2)*4703^(1/2))/108)^(1/3)) - (15/2 - 1/108*108^(1/2)*4703^(1/2))^(1/3)))/2 – 1 3.10求线性方程组223430 x xy y x x ?++=??-+=??的解 eqn1='x^2+x*y+y=3'; >> eqn2='x^2-4*x+3=0'; [x,y]=solve(eqn1,eqn2) x = 1 3 y = 1 -3/2 3.11求微分方程64dy y x dx =+的通解。 >> y=dsolve('Dy=6*y+4*x','x') y = (C3*exp(6*x))/9 - (2*x)/3 - 1/9 3.14求微分方程组2543dy x dt dx y dt ?=+????=-??在y(0)=3,x(0)=1时的特解。 >> eqn1='Dy=2*x+5'; >> eqn2='Dx=4*y-3'; >> [x y]=dsolve(eqn1,eqn2,'y(0)=3,x(0)=1') x = (2^(1/2)*(7*2^(1/2) - 9))/(8*exp(2*2^(1/2)*t)) + (2^(1/2)*exp(2*2^(1/2)*t)*(7*2^(1/2) +

第3章 MATLAB数值计算-习题 答案

roots([1 -1 -1]) x=linspace(0,2*pi,10); y=sin(x); xi=linspace(0,2*pi,100); y1=interp1(x,y,xi); y2=interp1(x,y,xi,'spline'); y3=interp1(x,y,xi,'cublic'); plot(x,y,'o',xi,y1,xi,y2,xi,y3) x=[0 300 600 1000 1500 2000]; y=[0.9689 0.9322 0.8969 0.8519 0.7989 0.7491]; xi=linspace(0,2000,20); yi=1.0332*exp(-(xi+500)/7756); y1=interp1(x,y,xi,'spline'); subplot(2,1,1);plot(x,y,'o',xi,yi,xi,y1,'*') p=polyfit(x,y,2); y2=polyval(p,xi); subplot(2,1,2);plot(x,y,'o',xi,yi,xi,y2,'*') x=[0 300 600 1000 1500 2000]; y=[0.9689 0.9322 0.8969 0.8519 0.7989 0.7491]; xi=linspace(0,2000,20); y1=interp1(x,y,xi,'spline'); subplot(2,1,1);plot(x,y,'-o', xi,y1,'-*') p=polyfit(x,y,2); y2=polyval(p,xi); subplot(2,1,2);plot(x,y,'-o',xi,y2,'-*')

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命令显示详细信息.預頌圣鉉儐歲龈讶骅籴。

(完整版)matlabR2012a课后习题答案第三章

第3章数值数组及其运算 习题3及解答 1 要求在闭区间]2,0[ 上产生具有10个等距采样点的一维数组。试 用两种不同的指令实现。 〖目的〗 ●数值计算中产生自变量采样点的两个常用指令的异同。 〖解答〗 %方法一 t1=linspace(0,2*pi,10) %方法二 t2=0:2*pi/9:2*pi %要注意采样间距的选择,如这里的2*pi/9. t1 = Columns 1 through 7 0 0.6981 1.3963 2.0944 2.7925 3.4907 4.1888 Columns 8 through 10 4.8869 5.5851 6.2832 t2 = Columns 1 through 7 0 0.6981 1.3963 2.0944 2.7925 3.4907 4.1888 Columns 8 through 10 4.8869 5.5851 6.2832 2 由指令rng('default'),A=rand(3,5)生成二维数组A,试求该数组中 所有大于0.5的元素的位置,分别求出它们的“全下标”和“单下标”。 〖目的〗 ●数组下标的不同描述:全下标和单下标。 ●sub2ind, int2str, disp的使用。 ●随机发生器的状态控制:保证随机数的可复现性。 〖解答〗 rng('default') A=rand(3,5) [ri,cj]=find(A>0.5); id=sub2ind(size(A),ri,cj); ri=ri';cj=cj'; disp(' ') disp('大于0.5的元素的全下标') disp(['行号 ',int2str(ri)]) disp(['列号 ',int2str(cj)]) disp(' ') disp('大于0.5的元素的单下标') disp(id')

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.已知 完成下列操作: (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] 7.用结构体矩阵来存储5名学生的基本情况数据,每名学生的数据包括学号、姓名、专业和6门课 程的成绩。 答:student(1).id='0001'; student(1).name='Tom'; student(1).major='computer'; student(1).grade=[89,78,67,90,86,85]; 8.建立单元矩阵B并回答有关问题。 B{1,1}=1; B{1,2}='Brenden';

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 ? =0sin )(在]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.计算复数3+4i与5-6i的乘积。 a=3+4i b=5-6i c=a*b 2.构建结构体Students,属性包含Name、age和Email,数据包括{’Zhang’,18,[‘Zhang16 3.’,’Zhang263.’]}、{’Wang’,21,[]}和{’Li’,[],[]},构建后读取所有Name属性值,并且修改’Zhang’的Age属性值为19。 Students(1).Age=18 Students(1).Email='zhang163.','zhang263.' Students(2).Name='Wang' Students(2).Age=21 Students(2).Email=[] Students(3).Name='Li' Students(3).Age=[] Students(3).Email=[] https://www.doczj.com/doc/af8537074.html, Student(1).Age(1)=19 Student.Age 3.用满矩阵和稀疏矩阵存储方式分别构造下属矩阵: A=[0 1 0 0 0;1 0 0 0 0;0 0 0 0 0;0 0 0 1 0] A=[0 1 0 0 0;1 0 0 0 0;0 0 0 0 0;0 0 0 1 0] S=sparse(A) S=sparse([2,1,4],[1,2,4],[1,1,1],4,5) 4.采用向量构造符得到向量[1,5,9....,41]. A=1:4:41 5.按水平和竖直方向分别合并下述两个矩阵:A=[1 0 0;1 1 0;0 0 1],B=[2 3 4;5 6 7;8 9 10] A=[1 0 0;1 1 0;0 0 1] B=[2 3 4;5 6 7;8 9 10] C=[A B] D=[A;B] 6.分别删除第五题两个结果的第2行。 A=[1 0 0;1 1 0;0 0 1] B=[2 3 4;5 6 7;8 9 10] C=[A B] D=[A;B] C(2,:)=[] D(2,:)=[] 7.分别将第5题两个结果的第2行最后3列的数值改为[11 12 13]。 A=[1 0 0;1 1 0;0 0 1] B=[2 3 4;5 6 7;8 9 10] C=[A B]

第3章--MATLAB矩阵处理-习题答案word版本

第3章--M A T L A B矩阵处理-习题答案

第3章 MATLAB矩阵处理 习题3 一、选择题 1.产生对角线上全为1,其余为0的2行3列矩阵的命令是()。C A.ones(2,3) B.ones(3,2) C.eye(2,3) D.eye(3,2) 2.建立3阶单位矩阵A的命令是()。A A.A=eye(3) B.A=eye(3,1) C.A=eye(1,3) D.A=ones(3) 3.产生和A同样大小的幺矩阵的命令是()。B A.eye(size(A)) B.ones(size(A)) C.size(eye(A)) D.size(ones(A)) 4.建立5×6随机矩阵A,其元素为[100,200]范围内的随机整数,相应的命令是()。D A.A=fix(100+200*rand(5,6)) B.A=fix(200+100*rand(5,6)) C.A= fix(100+300*rand(5,6)) D.A=fix(100+101*rand(5,6)) 5.产生均值为1、方差为0.2的500个正态分布的随机数,相应的命令是()。A。 A.1+sqrt(0.2)*randn(25,20)B.1+0.2*randn(500) C.0.2+randn(500)D.0.2+randn(25,20) 6.从矩阵A提取主对角线元素,并以这些元素构成对角阵B,相应的命令是()。B A.B=diag(A) B.B=diag(diag(A)) C.B=diag(triu(A)) D.B=diag(tril(A)) 7.在MATLAB中定义A=randn(5,4,3,2),则下列关于A的操作中正确的是()。D A.y=eig(A) B.y=reshape(A,[4 3 6 7]) C.y=cond(A) D.y=sin(A) 8.在命令行窗口中分别输入下列命令,对应输出结果正确的是()。C A.命令x=[-2:2]',结果x=[-2 -1 0 1 2] B.命令x=zeros(1,2);x>0,结果ans=1 C.命令y=diag(eye(3),1)',结果y=[0 0] D.命令5-10*rand(1,2),结果ans=[-5.0501 1.2311]

MATLAB程序设计与应用课后习题答案

西安科技大学MATLAB程序设计 专业:信息与计算科学 班级:1001班 学号:1008060129 姓名:刘仲能 2012年6月27日

实验一 2.已知: ?? ??? ?????-=76538773443412A ,???? ? ?????--=723302131B 求下列表达式的值: (1)A+6*B 和A-B+I (其中I 为单位矩阵) (2)A*B 和A.*B (3)A^3和A.^3 (4)A/B 及B\A (5)[A,B]和 [A([1,3],:);B^2]

3.设有矩阵A 和B ????? ??? ??? ?? ???=252423222120191817161514 13121110987654321A ,??????? ? ????????--=11134079423096171603B (1) 求它们的乘积C 。 (2) 将矩阵C 的右下角3×2子矩阵赋给D 。 (3) 查看MATLAB 工作空间的使用情况 (1) (2) (3)

4.完成下列操作 (1)求[100,999]之间能被21整除的数的个数。(2)建立一个字符串向量,删除其中的大写字母。 (1)(2)

实验二 3.建立一个5×5矩阵,求它的行列式值、迹、秩和范数。 运行截图: A 矩阵的行列式值、迹、秩分别如下: 范数如下: 4.已知 ?? ?? ? ?????--=5881252018629A 求A 的特征值及特征向量,并分析其数学意义。 运行截图:

5.下面是一个线性方程组:???? ? ?????=????????????????????52.067.095.06/15/14/15/14/13/14/13/12/1321x x x (1) 求方程的解; (2) 将方程右边向量元素 改为0.53,在求解,并比较 的变化和解的相对 变化; (3) 计算系数矩阵A 的条件数并分析结论。 (2) 变大,其解中,相对未变化前的 的解:x1变大,x2变小,x3变大。 (3) 由于A 矩阵的条件数很大,故当线性方程组中的b 变大时,x 也将发生很大的变

matlab程序设计第三章课后习题答案资料

m a t l a b程序设计第三章课后习题答案

1. p138 第6题在同一坐标轴中绘制下列两条曲线并标注两曲线交叉点。 >> t=0:0.01:pi; >> x1=t; >> y1=2*x1-0.5; >> x2=sin(3*t).*cos(t); >> y2=sin(3*t).*sin(t); >> plot(x1,y1,'r-',x2,y2,'g-') >> axis([-1,2,-1.5,1]) >> hold on >> s=solve('y=2*x-0.5','x=sin(3*t)*cos(t)','y=sin(3*t)*sin(t)'); >> plot(double(s.x),double(s.y),'*'); 截图:

p366 第4题绘制极坐标曲线,并分析对曲线形状的影响。 function [ output_args ] = Untitled2( input_args ) %UNTITLED2 Summary of this function goes here % Detailed explanation goes here theta=0:0.01:2*pi; a=input('请输入a的值:'); b=input('请输入b的值:'); n=input('请输入n的值:'); rho=a*sin(b+n*theta); polar(theta,rho,'k'); end 下面以a=1,b=1,n=1的极坐标图形为基础来分析a、b、n的影响。

对a的值进行改变:对比发现a只影响半径值的整倍变化

对b的值进行改变:对比发现b的值使这个圆转换了一定的角度 对n的值进行改变:对比发现当n>=2时有如下规律 1、当n为整数时,图形变为2n个花瓣状的图形 2、当n为奇数时,图形变为n个花瓣状的图形 分别让n为2、3、4、5

MATLAB教程2012a第3章习题解答 张志涌

第3章 数值阵列及其运算 习题3及解答 1 在MATLAB 中,先运行指令A=magic(3), B=[1,2,1;3,4,3;5,6,7]生成阵列33?A ,33?B ,然后根据运行结果回答以下问题: 〖目的〗 ● 体验矩阵乘法次序不可交换; ● 体验矩阵左除、右除的不同; ● 体验数组乘法次序可交换; ● 体验数组左除、右除的相同性; ● 体验矩阵乘法与数组乘法的根本性差别 ● 体验矩阵求逆的两种方法; ● 体验数组“逆”概念 〖解答〗 A=magic(3), B=[1,2,1;3,4,3;5,6,7] %创建阵列 A = 8 1 6 3 5 7 4 9 2 B = 1 2 1 3 4 3 5 6 7 (1) C1amb=A*B %相乘矩阵的次序不可交换 C1bma=B*A C1amb = 41 56 53 53 68 67 41 56 45 C1bma = 18 20 22 48 50 52 86 98 86 (2) C2adb=A\B %矩阵左除和右除根本不同 C2bda=B/A C2adb = 0.0333 0.1000 0.1611 0.5333 0.6000 0.7444 0.0333 0.1000 -0.1722 C2bda = 0.0056 0.0889 0.1722 0.1389 0.2222 0.3056

0.2333 0.7333 0.2333 (3) C3amb=A.*B %数组乘法不分左、右乘,因为是“元素对元素的运算”C3bma=B.*A C3amb = 8 2 6 9 20 21 20 54 14 C3bma = 8 2 6 9 20 21 20 54 14 (4) C4adb=A.\B %数组除法不分左、右除,因为是“元素对元素的运算”C4bda=B./A C4adb = 0.1250 2.0000 0.1667 1.0000 0.8000 0.4286 1.2500 0.6667 3.5000 C4bda = 0.1250 2.0000 0.1667 1.0000 0.8000 0.4286 1.2500 0.6667 3.5000 (5) C5ada=A\A %相当于inv(A)*A,所以得到“单位阵” C5adda=A.\A %相当于“数组逆”乘数组,得到“单位数组” C5ada = 1 0 0 0 1 0 0 0 1 C5adda = 1 1 1 1 1 1 1 1 1 (6) C6ade=A\eye(3) %矩阵求逆的代数方程法 C6inv=inv(A) %直接利用求逆指令。两者结果相同 C6ade = 0.1472 -0.1444 0.0639 -0.0611 0.0222 0.1056 -0.0194 0.1889 -0.1028 C6inv = 0.1472 -0.1444 0.0639 -0.0611 0.0222 0.1056 -0.0194 0.1889 -0.1028 (7) A C7add1=A.\1 %求“数组逆” C7ade=A\eye(3) %求“矩阵逆” A = 8 1 6 3 5 7 4 9 2 C7add1 = 0.1250 1.0000 0.1667 0.3333 0.2000 0.1429 0.2500 0.1111 0.5000

matlab第三章课后部分答案

习题三 3-2 从键盘输入一个三位整数,将它反向输出。如输入639,输出为936 程序如下: m=input('请输入一个三位整数:'); m1=fix(m/100);%求m的百位整数 m2=rem(fix(m/10),10);%求m的十位数字 m3=rem(m,10);%求m的个位数字 m=m3*100+m2*10+m1%反向输出m 3-3 输入一个百分制成绩,要求输出成绩等级A,B,C,D,E。其中90~100分为A,80~89分为B,70~79分为C,60~69分为D,60分以下为E。 要求:(1)分别用if语句和switch语句实现。 (2)输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。程序如下: (1)if语句 c=input('请输入成绩:'); if c>=90&c<=100 disp('A 成绩合理'); elseif c>=80&c<=89 disp('B 成绩合理'); elseif c>=70&c<=79 disp('C 成绩合理'); elseif c>=60&c<=69 disp('D 成绩合理'); elseif c<60 disp('E 成绩合理'); else disp('成绩错误'); end (2)switch语句 c=input('请输入成绩:'); switch fix(c) case num2cell(90:100) disp('A 成绩合理'); case num2cell(80:89) disp('B 成绩合理'); case num2cell(70:79) disp('C 成绩合理'); case num2cell(60:69) disp('D 成绩合理'); case num2cell(0:59) disp('E 成绩合理'); otherwise disp('成绩错误'); end

相关主题
文本预览
相关文档 最新文档