当前位置:文档之家› 习题2-数值数组及向量化运算

习题2-数值数组及向量化运算

习题2-数值数组及向量化运算
习题2-数值数组及向量化运算

习题2

1.请读者先运行以下指令

a=0;b=pi;

t1=a:pi/9:pi;

t2=linspace(a,b,10);

T=t1*t2';

F=find(T<0);

然后,请回答变量a、t1、T、F的维度、规模、长度分别是多少?

t1完全等于t2吗?为什么?

1)产生数据

a=0;b=pi;

t1=a:pi/9:pi;

t2=linspace(a,b,10);

T=t1*t2';

F=find(T<0);

2)罗列各变量的特征

Na=ndims(a);Nt1=ndims(t1);NT=ndims(T);NF=ndims(F) ;

Sa=size(a);St1=size(t1);ST=size(T);SF=size(F);

La=length(a);Lt1=length(t1);LT=length(T);LF=lengt h(F);

fprintf('数组%7s%8s%8s%8s\n','a','t1','T','F') fprintf('维度数%5d%8d%8d%8d\n',Na,Nt1,NT,NF)

fprintf('规模%5d%3d%5d%3d%5d%3d%5d%3d\n',Sa,St1,ST,SF)

fprintf('长度%7d%8d%8d%8d\n',La,Lt1,LT,LF)

数组 a t1 T F

维度数2 2 2 2

规模 1 1 1 10 1 1 0 0

长度 1 10 1 0

3)判断数组相等

P=t1==t2 %对不同浮点计算方法获得的数进行比较的本指令,不推荐使用

E=max(abs(t1-t2))

P =

1 1 1 1 1 1 0 1 1 1

E =

4.4409e-16

可见2个数组中的元素不完全相等。应记住:这种现象在数值计算中常常会遇到;并且,若想检验同一个量的不同方法、途径算得的结果,应尽量不用“==”符判断,而应借助“两个量间的(相对)误差水平是否小于某个容差”进行判断。比如

pp=abs(t1-t2)<1e-14

pp =

1 1 1 1 1 1 1 1 1 1 2.对于指令A=reshape(1:18,3,6)产生的数组

A =

1 4 7 10 13 16

2 5 8 11 14 17

3 6 9 12 15 18

先请你用一条指令,使A数组中取值为2、4、8、16的元素都被重新赋值为NaN。然后,再请你用一条指令,把A数组的第4、5两列元素都被重新赋值为Inf。

1)产生数组A

A=reshape(1:18,3,6)

A =

1 4 7 10 13 16

2 5 8 11 14 17

3 6 9 12 15 18

2)利用单序号实现对2、4、8、16的元素的重新赋值

A([2,4,8,16])=NaN %这些位置元素的重赋值不可能采用“全下标”一次性实现

A =

1 NaN 7 10 13 NaN

NaN 5 NaN 11 14 17

3 6 9 12 15 18

3)利用全下标和冒号对第4、5列元素进行重赋值

A(:,[4,5])=Inf

A =

1 NaN 7 InfInfNaN

NaN 5 NaNInfInf 17

3 6 9 InfInf 18

3.由指令rng('default'),A=rand(3,5)生成二维数组A,试求该数组中所有大于0.5的元素的位置,分别求出它们的“全下标”和“单下标”。

1)产生试验数组

rng('default')

A=rand(3,5)

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 2)寻找数值大于0.5的所有元素的全下标

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

disp(' ')

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

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

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

大于0.5的元素的全下标

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

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

3)寻找数值大于0.5的所有元素的单序号

id=find(A>0.5);

disp(' ')

disp('大于0.5的元素的单序号')

disp(id')

大于0.5的元素的单序号

1 2 4 5 8 9 10 12 13 15 4.已知A=magic(3),B=rand(3),请回答以下问题:

(1)A.*B和B.*A的运行结果相同吗?请说出理由。

(2)A*B和A.*B的运行结果相同吗?请说出理由。

(3)A*B 和B*A 的运行结果相同吗?请说出理由。

(4)A.\B 和B./A 的运行结果相同吗?请说出理由。

(5)A\B 和B/A 的运行结果相同吗?请说出理由。

(6)A*A\B-B 和A*(A\B)-B 的运行结果相同吗?它们中那个结果的元素都十分接近于0?

(7)A\eye(3)和eye(3)/A 的运行结果相同吗?为什么?

(1)相同。数组对应元素间相乘运算,服从交换律。

(2)不同。前者是矩阵乘积,后者是数组对应元素的乘积。

(3)不同。矩阵乘运算不服从交换律。

(4)相同。因为在两个指令中,数组A 始终是“除数组”,而B 是“被除数组”。

(5)一般不同。前者是B 左除A ,后者是B 右除A 。

(6)后者结果接近于全0元素阵。A*(A\B)-B 相当于A*(inv(A)*B)-B ,所以几乎为0阵。

(7)相同。实际上得到的就是A 的逆阵。

5. 已知矩阵??

????=4321A ,(1)运行指令B1=A.^(0.5), B2=0.5.^A, B3=A^(0.5), B4=0.5^A 可以观察到不同运算方法所得结果不同。

(2)请分别写出根据B1, B2, B3, B4恢复原矩阵A 的M 码。

1)生成四个指数运算结果

A=[1,2;3,4];

B1=A.^0.5

B2=0.5.^A %等式两边进行若进行对数操作,可得

B3=A^0.5

B4=0.5^A %等式两边进行若进行矩阵对数操作,可得 B1 =

1.0000 1.4142

1.7321

2.0000

B2 =

0.5000 0.2500

0.1250 0.0625

B3 =

0.5537 + 0.4644i 0.8070 - 0.2124i

1.2104 - 0.3186i 1.7641 + 0.1458i

B4 =

0.9910 -0.4422

-0.6634 0.3276

2)逆运算

A1=B1.^2

A2=log(B2)/log(0.5)

A3=B3^2

A4=logm(B4)/logm(0.5)

A1 =

1.0000

2.0000

3.0000

4.0000

A2 =

1 2

3 4

A3 =

1.0000 + 0.0000i

2.0000 + 0.0000i

3.0000 - 0.0000i

4.0000 + 0.0000i

A4 =

1.0000

2.0000

3.0000

4.0000

6.先运行指令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)请写出绘制相应的“无裂缝”图形的全部指令。(提示:isnan用于判断是否非数;可借助sum求和;realmin 是最小正数。)

〖解答〗

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))) %计算“非数”数目

%NumOfNaN2=length(find(isnan(Z)==1))

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

%产生无缝图

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

YY=Y+(Y==0)*realmin;%realmin返回指定浮点数类型所能表示的最小值

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

subplot(1,2,2),surf(XX,YY,ZZ),shading

interp,title('无缝图')

NumOfNaN =

181

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

-

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

15.0-

cos

e

y t2

向量化编程”和“向量化编程”编写两段程序绘图。

〖解答〗

%标量循环运算法

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

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

数值计算课后答案

习 题 四 解 答 1、设010,1x x ==,写出()x f x e -=的一次插值多项式1()L x ,并估计插值误差。 设插值函数为1()L x ax b =+,由插值条件,建立线性方程组为 1 01 1a b a b e -?+=???+=? 解之得11 1a e b -?=-?=? 则11()(1)1L x e x -=-+ 因为(),()x x y x e y x e --'''=-= 所以,插值余项为 (1)(2) (2)011 ()()()()() (1)! 1()()2!1 ()()()2!1 (0)(1)((0,1))2n r x f x p x f x n f x f x x x x e x x ξξπξπξξ+-=-=+= =--=--∈ 所以 01 0101 ()max max (1) 2111248x r x e x x e ξξ-≤≤≤≤-≤-=??=。 2选用合适的三次插值多项式来近似计算f 和f 。 解:设三次插值多项式为230123()f x a a x a x a x =+++,由插值条件,建立方程组为 23012323 012323 01232301 23(0.1)(0.1)(0.1)0.9950.30.30.30.995 0.70.70.70.7651.1 1.1 1.10.454 a a a a a a a a a a a a a a a a ?+?-+?-+?-=?+?+?+?=??+?+?+?=??+?+?+?=?

即 012301230123 123012312301230.10.010.0010.9950.10.010.0010.9950.30.090.0270.9950.40.080.02800.70.490.3430.7650.80.480.344 1.761.1 1.21 1.3310.454a a a a a a a a a a a a a a a a a a a a a a a a a a -+-=-+-=??+++=++=??? +++=++=??+++=?12301231232330.40.720.9880.3110.10.010.0010.9950.40.080.02800.320.288 1.760.384 3.831a a a a a a a a a a a a a ??????++=-? -+-=??++=??? +=? ?-=-? 解之得 01 230.416.293.489.98 a a a a =??=-?? =-??=? 则所求的三次多项式为23()0.41 6.29 3.489.98f x x x x =--+。 所以 2323 (0.2)0.41 6.290.2 3.480.29.980.20.91 (0.8)0.41 6.290.8 3.480.89.980.8 1.74f f =-?-?+?=-=-?-?+?=- 3、设(0,1,2,,)i x i n =L 是 n+1个互异节点,证明: (1)0()(0,1,2,,)n k k i i i x l x x k n ===∑L ; (2)0 ()()0(0,1,2,,)n k i i i x x l x k n =-==∑L 。 证明: (1)由拉格朗日插值定理,以x 0,x 1,x 2,…x n 为插值节点,对y=f(x)=x k 作n 次插值,插值多项式为 0()()n n i i i p x l x y ==∑, 而y i =x i k , 所以0 ()()()n n k n i i i i i i p x l x y l x x ====∑∑ 同时,插值余项 (1)(1)11 ()()()()()()0(1)!(1)! n k n k n r x x p x f x x x n n ξξππ++=-= ==++ 所以0 ()n k k i i i l x x x ==∑ 结论得证。 (2)取函数()(),0,1,2,,k f x x t k n =-=L 对此函数取节点(0,1,2,,)i x i n =L ,则对应的插值多项式为

计算方法引论课后答案.

第一章 误差 1. 试举例,说明什么是模型误差,什么是方法误差. 解: 例如,把地球近似看为一个标准球体,利用公式2 4A r π=计算其表面积,这个近似看为球体的过程产生 的误差即为模型误差. 在计算过程中,要用到π,我们利用无穷乘积公式计算π的值: 12 222...q q π=? ?? 其中 11 2,3,... n q q n +?=?? ==?? 我们取前9项的乘积作为π的近似值,得 3.141587725...π≈ 这个去掉π的无穷乘积公式中第9项后的部分产生的误差就是方法误差,也成为截断误差. 2. 按照四舍五入的原则,将下列各数舍成五位有效数字: 816.956 7 6.000 015 17.322 50 1.235 651 93.182 13 0.015 236 23 解: 816.96 6.000 0 17.323 1.235 7 93.182 0.015 236 3. 下列各数是按照四舍五入原则得到的近似数,它们各有几位有效数字? 81.897 0.008 13 6.320 05 0.180 0 解: 五位 三位 六位 四位 4. 若1/4用0.25表示,问有多少位有效数字? 解: 两位 5. 若 1.1062,0.947a b ==,是经过舍入后得到的近似值,问:,a b a b +?各有几位有效数字? 解: 已知4311 d 10,d 1022 a b --

数值计算课后答案2

习 题 二 解 答 1.用二分法求方程x 3-2x 2-4x-7=0在区间[3,4]内的根,精确到10-3,即误差不超过31 102-?。 分析:精确到10-3与误差不超过10-3不同。 解:因为f(3)=-10<0,f(4)=9>0,所以,方程在区间[3,4]上有根。 由 3 4311*10 2 2 2 2 2 n n n n n n b a b a x x -----≤ == = < ? 有2n-1>1000,又为210=1024>1000, 所以n =11,即只需要二分11次即可。 x *≈x 11=3.632。 指出: (1)注意精确度的不同表述。精确到10-3和误差不超过10-3 是不同的。 (2)在计算过程中按规定精度保留小数,最后两次计算结果相同。

(3)用秦九韶算法计算f(x n )比较简单。 1*.求方程x 3-2x 2-4x-7=0的隔根区间。 解:令32247y x x x =---, 则2344322()()y x x x x '=--=+- 当23443220()()y x x x x '=--=+-=时,有122 23,x x =-=。 因为2 14902150327(),()y y -=- <=-<,所以方程在区间223 (,)-上无根; 因为214903 27 ()y - =-<,而函数在23 (,)-∞- 上单调增,函数值不可能变号,所以 方程在该区间上无根; 因为2150()y =-<,函数在(2,+∞)上单调增,所以方程在该区间上最多有一个根, 而(3)=-10<0,y(4)=9>0,所以方程在区间(3,4)有一个根。 所以,该方程有一个根,隔根区间是(3.4)。 2.证明1sin 0x x --=在[0,1]内有一个根,使用二分法求误差不大于4 1 102-?的根,需要迭代多少次? 分析:证明方程在指定区间内有一个根,就是证明相应的函数在指定区间有至少一个零点。 解:令()1sin f x x x =--, 因为(0)10sin 010,(1)11sin 1sin 10f f =--=>=--=-<,

数值分析课后答案

1、解:将)(x V n 按最后一行展开,即知)(x V n 是n 次多项式。 由于 n i i i n n n n n i n x x x x x x x x x x V ...1...1... ......... ...... 1 )(21110 20 0---= ,.1,...,1,0-=n i 故知0)(=i n x V ,即110,...,,-n x x x 是)(x V n 的根。又)(x V n 的最高 次幂 n x 的系数为 )(...1...1... ...... .........1),...,,(101 1 21 11 2 2221 02001101j n i j i n n n n n n n n n n n x x x x x x x x x x x x x x V -== ∏-≤<≤-----------。 故知).)...()()(,...,,()(1101101------=n n n n x x x x x x x x x V x V 6、解:(1)设 .)(k x x f =当n k ,...,1,0=时,有.0)()1(=+x f n 对 )(x f 构造Lagrange 插值多项式, ),()(0 x l x x L j n j k j n ∑== 其 0)()! 1() ()()()(1)1(=+=-=++x w n f x L x F x R n n n n ξ, ξ介于j x 之间,.,...,1,0n j = 故 ),()(x L x f n =即 .,...,1,0,)(0 n k x x l x k j n j k j ==∑= 特别地,当0=k 时, 10) (=∑=n j x j l 。 (2) 0)()1(1) ()1()()(0000=-=??? ? ??-??? ? ??-=--=-===∑∑∑∑k j j i j i k j k i i j i i k j n j k i i j k n j j x x x x i k x l x x i k x l x x )利用(。 7、证明:以b a ,为节点进行线性插值,得 )()()(1 b f a b a x a f b a b x x P --+--= 因 0)()(==b f a f ,故0)(1=x P 。而 ))()(("2 1 )()(1b x a x f x P x f --= -ξ,b a <<ξ。 故)("max )(8 122)("max )(max 2 2 x f a b a b x f x f b x a b x a b x a ≤≤≤≤≤≤-=??? ??-≤。 14、解:设 ))...()(()(21n n x x x x x x a x f ---=, k x x g =)(,记)() (1 ∏=-=n j j n x x x w ,则 ),()(x w a x f n n =).()(' j n n j x w a x f = 由差商的性质知 [])! 1()(1,..,,1) (' 1 )(')('1 211 11 -== ==-===∑∑∑ n g a x x x g a x w x a x w a x x f x n n n n n j j n k j n n j j n n k j n j j k j ξ, ξ介于n x x ,...,1之间。 当20-≤≤ n k 时,0)()1(=-ξn g , 当 1-=n k 时,)!1()(1-=-n g n ξ, 故 ???-=-≤≤=-= --=∑1,,20,0)!1()(1) ('1 11 n k a n k n g a x f x n n n n j j k j ξ 16、解:根据差商与微商的关系,有 [] 1! 7! 7!7)(2,...,2,2)7(7 10===ξf f , [ ] 0! 80 !8)(2,...,2,2)8(8 1 ===ξf f 。 ( 13)(47+++=x x x x f 是7次多项式, 故 ,!7)()7(=x f 0)()8(=x f )。 25、解:(1) 右边= [][]dx x S x f x S dx x S x f b a b a ??-+-)(")(")("2)(")("2 = [] d x x S x f x S x S x S x f x f b a ?-++-)("2)(")("2)(")(")("2)(" 222 = [] d x x S x f b a ?-)(")(" 22 = [][]dx x S dx x f b a b a 2 2 )(")("??- =左边。 (2)左边= ? -b a dx x S x f x S ))(")(")(("

计算方法习题答案

计算方法第3版习题答案 习题1解答 1.1 解:直接根据定义得 *411()102x δ-≤?*411()102r x δ-≤?*3*12211 ()10,()1026 r x x δδ--≤?≤?*2*5331()10,()102r x x δδ--≤?≤ 1.2 解:取4位有效数字 1.3解:433 5124124124 ()()() 101010() 1.810257.563 r a a a a a a a a a δδδδ----++++++≤≤=?++? 123()r a a a δ≤ 123132231123 ()()() a a a a a a a a a a a a δδδ++0.016= 1.4 解:由于'1(),()n n f x x f x nx -==,故***1*(())()()()n n n f x x x n x x x δ-=-≈- 故** * ***(()) (())()0.02()r r n f x x x f x n n x n x x δδδ-= ≈== 1.5 解: 设长、宽和高分别为 ***50,20,10l l h h εεωωεεεε=±=±=±=±=±=± 2()l lh h ωωA =++,*************()2[()()()()()()]l l l h h l h h εδωωδδδωδδωA =+++++ ***4[]320l h εωε=++= 令3201ε<,解得0.0031ε≤, 1.6 解:设边长为x 时,其面积为S ,则有2()S f x x ==,故 '()()()2()S f x x x x δδδ≈= 现100,()1x S δ=≤,从而得() 1 ()0.00522100 S x x δδ≈ ≤ =? 1.7 解:因S ld =,故 S d l ?=?,S l d ?=?,*****()()()()()S S S l d l d δδδ??≈+?? * 2 ()(3.12 4.32)0.010.0744S m δ=+?=, *** ** * () () 0.0744 ()0.55%13.4784 r S S S l d S δδδ= = = ≈ 1.8 解:(1)4.472 (2)4.47 1.9 解:(1) (B )避免相近数相减 (2)(C )避免小除数和相近数相减 (3)(A )避免相近数相减 (3)(C )避免小除数和相近数相减,且节省对数运算 1.10 解 (1)357sin ...3!5!7!x x x x x =-+-+ 故有357 sin ..3!5!7! x x x x x -=-+-, (2) 1 (1)(1)1lnxdx ln ln ln N+N =N N +-N N +N +-? 1 (1)1ln ln N +=N +N +-N 1.11 解:0.00548。 1.12解:21 16 27 3102 ()()() -? 1.13解:0.000021

习题2-数值数组及向量化运算

习题2 1.请读者先运行以下指令 a=0;b=pi; t1=a:pi/9:pi; t2=linspace(a,b,10); T=t1*t2'; F=find(T<0); 然后,请回答变量a、t1、T、F的维度、规模、长度分别是多少t1完全等于t2吗为什么 1)产生数据 a=0;b=pi; t1=a:pi/9:pi; t2=linspace(a,b,10); T=t1*t2'; F=find(T<0); 2)罗列各变量的特征 Na=ndims(a);Nt1=ndims(t1);NT=ndims(T);NF=ndims(F); Sa=size(a);St1=size(t1);ST=size(T);SF=size(F); La=length(a);Lt1=length(t1);LT=length(T);LF=length(F); fprintf('数组%7s%8s%8s%8s\n','a','t1','T','F') fprintf('维度数%5d%8d%8d%8d\n',Na,Nt1,NT,NF) fprintf('规模%5d%3d%5d%3d%5d%3d%5d%3d\n',Sa,St1,ST,SF) fprintf('长度%7d%8d%8d%8d\n',La,Lt1,LT,LF) 数组 a t1 T F 维度数 2 2 2 2 规模 1 1 1 10 1 1 0 0 长度 1 10 1 0 3)判断数组相等 P=t1==t2 %对不同浮点计算方法获得的数进行比较的本指令,不推荐使用 E=max(abs(t1-t2)) P = 1 1 1 1 1 1 0 1 1

1 E = 可见2个数组中的元素不完全相等。应记住:这种现象在数值计算中常常会遇到;并且,若想检验同一个量的不同方法、途 径算得的结果,应尽量不用“==”符判断,而应借助“两个量间 的(相对)误差水平是否小于某个容差”进行判断。比如 pp=abs(t1-t2)<1e-14 pp = 1 1 1 1 1 1 1 1 1 1 2.对于指令A=reshape(1:18,3,6)产生的数组 A = 1 4 7 10 13 16 2 5 8 11 14 17 3 6 9 12 15 18 先请你用一条指令,使A数组中取值为2、4、8、16的元素都被重新赋值为NaN。然后,再请你用一条指令,把A数组的第4、 5两列元素都被重新赋值为Inf。 1)产生数组A A=reshape(1:18,3,6) A = 1 4 7 10 13 16 2 5 8 11 14 17 3 6 9 12 15 18 2)利用单序号实现对2、4、8、16的元素的重新赋值 A([2,4,8,16])=NaN %这些位置元素的重赋值不可能采用 “全下标”一次性实现 A = 1 NaN 7 10 13 NaN NaN 5 NaN 11 14 17 3 6 9 12 15 18 3)利用全下标和冒号对第4、5列元素进行重赋值

数值计算方法答案

数值计算方法习题一(2) 习题二(6) 习题三(15) 习题四(29) 习题五(37) 习题六(62) 习题七(70) 2009.9,9

习题一 1.设x >0相对误差为2%4x 的相对误差。 解:由自变量的误差对函数值引起误差的公式: (())(())'()()()() f x x f x f x x f x f x δδ?= ≈得 (1)()f x = 11 ()()*2%1% 22x x δδδ≈ ===; (2)4 ()f x x =时 44 4 ()()'()4()4*2%8%x x x x x x δδδ≈ === 2.设下面各数都是经过四舍五入得到的近似数,即误差不超过最后一位的半个单位,试指出他们各有几位有效数字。 (1)12.1x =;(2)12.10x =;(3)12.100x =。 解:由教材9P 关于1212.m n x a a a bb b =±型数的有效数字的结论,易得上面三个数的有效 数字位数分别为:3,4,5 3.用十进制四位浮点数计算 (1)31.97+2.456+0.1352; (2)31.97+(2.456+0.1352) 哪个较精确? 解:(1)31.97+2.456+0.1352 ≈2 1 ((0.3197100.245610)0.1352)fl fl ?+?+ =2 (0.3443100.1352)fl ?+ =0.3457210? (2)31.97+(2.456+0.1352) 2 1 (0.319710(0.245610))fl fl ≈?+? = 21 (0.3197100.259110)fl ?+? =0.34562 10? 易见31.97+2.456+0.1352=0.3456122 10?,故(2)的计算结果较精确。 4.计算正方形面积时,若要求面积的允许相对误差为1%,测量边长所允许的相对误差限为多少?

matlab2011教程之二数值数组及向量化运算

第 2 章 数值数组及向量化运算本章集中讲述两个数据类型(数值数组和逻辑数组)、两个特有概念变量(非数和空)、 以及MATLAB的数组运算和向量化编程。值得指出:本章内容是读者今后编写各种科学计 算M码的基本构件。 数值数组(Numeric Array)是MATLAB最重要的数据类型数组。在各种维度的数值数 组中,二维数组为最基本、最常用。本章对二维数组创建、标识、寻访、扩充、收缩等方 法进行了详尽细腻的描述,并进而将这些方法推广到高维数组。 本章讲述的逻辑数组主要产生于逻辑运算和关系运算。它是MATLAB 援引寻访数据、 构成数据流控制条件、、编写复杂程序所不可或缺的重要构件。 数组运算是MATLAB区别于其它程序语言的重要特征,是MATLAB绝大多数函数指 令、Simulink许多库模块的本性,是向量化编程的基础。为此,本章专辟第2.2节用于阐述MATLAB的这一重要特征。 在此提醒读者注意:随书光盘mbook目录上保存着本章相应的电子文档“ch02_数值数 组及向量化运算.doc”。该文档中有本章全部算例的可执行指令,以及相应的运算结果。 2.1数值数组的创建和寻访 2.1.1一维数组的创建 1递增/减型一维数组的创建 (1)“冒号”生成法 (2)线性(或对数)定点法 2其他类型一维数组的创建 (1)逐个元素输入法 (2)运用MATLAB函数生成法 【例2.1-1】一维数组的常用创建方法举例。 a1=1:6 a2=0:pi/4:pi a3=1:-0.1:0 a1 = 1 2 3 4 5 6 a2 = 0 0.7854 1.5708 2.3562 3.1416 a3 = Columns 1 through 8 1.0000 0.9000 0.8000 0.7000 0.6000 0.5000 0.4000 0.3000 Columns 9 through 11 0.2000 0.1000 0 b1=linspace(0,pi,4) b2=logspace(0,3,4) b1 = 0 1.0472 2.0944 3.1416 b2 =

数值计算课后答案

习 题 三 解 答 1、用高斯消元法解下列方程组。 (1)1231231 22314254 27x x x x x x x x -+=?? ++=??+=?①②③ 解:?4②+(-)①2,1 2 ?③+(-)①消去第二、三个方程的1x ,得: 1232323231425313222 x x x x x x x ? ?-+=? -=???-=?④⑤⑥ 再由5 2)4 ?⑥+(-⑤消去此方程组的第三个方程的2x ,得到三角方程组: 1232332314272184x x x x x x ? ?-+=? -=???-= ? 回代,得: 36x =-,21x =-,19x = 所以方程组的解为 (9,1,6)T x =-- 注意: ①算法要求,不能化简。化简则不是严格意义上的消元法,在算法设计上就多出了步骤。实际上,由于数值计算时用小数进行的,化简既是不必要的也是不能实现的。无论是顺序消元法还是选主元素消元法都是这样。 ②消元法要求采用一般形式,或者说是分量形式,不能用矩阵,以展示消元过程。 要通过练习熟悉消元的过程而不是矩阵变换的技术。 矩阵形式错一点就是全错,也不利于检查。 一般形式或分量形式: 1231231 22314254 27x x x x x x x x -+=?? ++=??+=?①②③ 矩阵形式 123213142541207x x x -?????? ??? ?= ??? ? ??? ???????

向量形式 123213142541207x x x -???????? ? ? ? ?++= ? ? ? ? ? ? ? ????????? ③必须是方程组到方程组的变形。三元方程组的消元过程要有三个方程组,不能变形出单一的方程。 ④消元顺序12x x →→L ,不能颠倒。按为支援在方程组中的排列顺序消元也是存储算法的要求。实际上,不按顺序消元是不规范的选主元素。 ⑤不能化简方程,否则系数矩阵会变化,也不利于算法设计。 (2)1231231231132323110 221x x x x x x x x x --=?? -++=??++=-? ①②③ 解:?23②+( )①11,1 11 ?③+(-)①消去第二、三个方程的1x ,得: 123232311323523569111111252414111111x x x x x x x ? --=?? ? -=? ? ? +=-??④⑤⑥ 再由25 11)5211 ?⑥+(-⑤消去此方程组的第三个方程的2x ,得到三角方程组: 123233113235235691111111932235252x x x x x x ? ?--=? ? -=?? ? =-?? 回代,得: 32122310641 ,,193193193 x x x =- ==, 所以方程组的解为 41106223(,,)193193193T x =- 2、将矩阵 1020011120110011A ?? ? ?= ?- ???

《数值计算》课后习题汇总

习 题 一 解 答 1.取3.14,3.15, 227,355113 作为π的近似值,求各自的绝对误差,相对误差和有效数字的位数。 2、用四舍五入原则写出下列各数的具有五位有效数字的近似数。 346.7854,7.000009,0.0001324580,0.600300 3、下列各数都是对准确数进行四舍五入后得到的近似数,试分别指出他们的绝对误差限和相对误差限和有效数字的位数。 4.0.1%。 5、在计算机数系F(10,4,-77,77)中,对31120.14281100.31415910x x =?=-?与,试求它们的机器浮点数()(1,2)i fl x i =及其相对误差。 6、在机器数系F(10,8,L,U)中,取三个数 4220.2337125810,0.3367842910,0.3367781110x y z -=?=?=-?,试按 (),()x y z x y z ++++两种算法计算x y z ++的值,并将结果与精确结果比较。 7、某计算机的机器数系为F(10,2,L,U),用浮点运算分别从左到右计算及从右到左计算 10.40.30.20.040.030.020.01+++++++ 试比较所得结果。 8、对于有效数1233.105,0.001,0.100x x x =-==,估计下列算式的相对误差限 2 1123212333 ,,x y x x x y x x x y x =++== 9、试改变下列表达式,使其计算结果比较精确(其中1x 表示x 充分接 近0,1x 表示x 充分大)。 (1)1212ln ln ,x x x x -≈; (2) 11,111x x x x ---+; (3)1x ; (4) 1cos ,01x x x x -≠且; (5)1 cot ,01x x x x -≠且。

数值分析简明教程课后习题答案

比较详细的数值分析课后习题答案

0.1算法 1、 (p.11,题1)用二分法求方程013 =--x x 在[1,2]的近似根,要求误差不超过 10-3. 【解】 由二分法的误差估计式31 1*102 1 2||-++=≤=-≤ -εk k k a b x x ,得到100021≥+k .两端取自然对数得96.812ln 10 ln 3≈-≥ k ,因此取9=k ,即至少需 2、(p.11,题2) 证明方程210)(-+=x e x f x 在区间[0,1]有唯一个实根;使用二 分法求这一实根,要求误差不超过2102 1 -?。 【解】 由于210)(-+=x e x f x ,则)(x f 在区间[0,1]上连续,且 012010)0(0<-=-?+=e f ,082110)1(1>+=-?+=e e f ,即0)1()0(+=x e x f ,即)(x f 在区间[0,1]上是单调的,故)(x f 在区间[0,1]有唯一实根.

由二分法的误差估计式21 1*1021 2 12||-++?=≤=-≤-εk k k a b x x ,得到1002≥k .两端取自然对数得6438.63219.322 ln 10 ln 2=?≈≥ k ,因此取7=k ,即至少需二分 0.2误差 1.(p.12,题8)已知e=2.71828…,试问其近似值7.21=x ,71.22=x ,x 2=2.71, 718.23=x 各有几位有效数字?并给出它们的相对误差限。 【解】有效数字: 因为111021 05.001828.0||-?= <=- x e ,所以7.21=x 有两位有效数字; 因为1 2102105.000828.0||-?=<=- x e ,所以71.22=x 亦有两位有效数字; 因为3 3102 10005.000028.0||-?=<=- x e ,所以718.23=x 有四位有效数字; %85.17.205 .0||111=<-= x x e r ε; %85.171 .205 .0||222=<-= x x e r ε;

计算机操作系统(第四版)课后习题答案第五章

第五章 7.试比较缺页中断机构与一般的中断,他们之间有何明显的区别? 答:缺页中断作为中断,同样需要经历保护CPU现场、分析中断原因、转缺页中断处理程序进行处理、恢复CPU现场等步骤。但缺页中断又是一种特殊的中断,它与一般中断的主要区别是: ( 1)在指令执行期间产生和处理中断信号。通常,CPU都是在一条指令执行完后去检查是否有中断请求到达。若有便去响应中断;否则继续执行下一条指令。而缺页中断是在指令执行期间,发现所要访问的指令或数据不在内存时产生和处理的。 (2)一条指令在执行期间可能产生多次缺页中断。例如,对于一条读取数据的多字节指令,指令本身跨越两个页面,假定指令后一部分所在页面和数据所在页面均不在内存,则该指令的执行至少产生两次缺页中断。 8.试说明请求分页系统中的页面调入过程。 答:请求分页系统中的缺页从何处调入内存分三种情况: (1)系统拥有足够对换区空间时,可以全部从对换区调入所需页面,提高调页速度。在进程运行前将与该进程有关的文件从文件区拷贝到对换区。 (2)系统缺少足够对换区空间时,不被修改的文件直接从文件区调入;当换出这些页面时,未被修改的不必换出,再调入时,仍从文件区直接调入。对于可能修改的,在换出时便调到对换区,以后需要时再从对换区调入。 (3)UNIX 方式。未运行页面从文件区调入。曾经运行过但被换出页面,下次从对换区调入。UNIX 系统允许页面共享,某进程请求的页面有可能已调入内存,直接使用不再调入。 19.何谓工作集?它是基于什么原理确定的? 答:工作集:在某段时间间隔里,进程实际所要访问页面的集合。 原理:用程序的过去某段时间内的行为作为程序在将来某段时间内行为的近似。 24.说明请求分段式系统中的缺页中断处理过程。 答:在请求分段系统中,每当发现运行进程所要访问的段尚未调入内存时,便由缺段中断机构产生一缺段中断信号,进入操作系统后由缺段中断处理程序将所需的段调入内存。缺段中断机构与缺页中断机构类似,它同样需要在一条指令的执行期间,产生和处理中断,以及在一条指令执行期间,可能产生多次缺段中断。

数值分析课后习题答案

习 题 一 解 答 1.取3.14,3.15, 227,355113 作为π的近似值,求各自的绝对误差,相对误差和有效数字的位数。 分析:求绝对误差的方法是按定义直接计算。求相对误差的一般方法是先求出绝对误差再按定义式计算。注意,不应先求相对误差再求绝对误差。有效数字位数可以根据定义来求,即先由绝对误差确定近似数的绝对误差不超过那一位的半个单位,再确定有效数的末位是哪一位,进一步确定有效数字和有效数位。有了定理2后,可以根据定理2更规范地解答。根据定理2,首先要将数值转化为科学记数形式,然后解答。 解:(1)绝对误差: e(x)=π-3.14=3.14159265…-3.14=0.00159…≈0.0016。 相对误差: 3()0.0016 ()0.51103.14r e x e x x -==≈? 有效数字: 因为π=3.14159265…=0.314159265…×10,3.14=0.314×10,m=1。 而π-3.14=3.14159265…-3.14=0.00159… 所以│π-3.14│=0.00159…≤0.005=0.5×10-2=21311 101022 --?=? 所以,3.14作为π的近似值有3个有效数字。 (2)绝对误差: e(x)=π-3.15=3.14159265…-3.14=-0.008407…≈-0.0085。 相对误差: 2()0.0085 ()0.27103.15r e x e x x --==≈-? 有效数字: 因为π=3.14159265…=0.314159265…×10,3.15=0.315×10,m=1。 而π-3.15=3.14159265…-3.15=-0.008407… 所以│π-3.15│=0.008407……≤0.05=0.5×10-1 =11211101022 --?=? 所以,3.15作为π的近似值有2个有效数字。 (3)绝对误差: 22 () 3.14159265 3.1428571430.0012644930.00137e x π=-=-=-≈- 相对误差:

第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,'-*')

计算方法引论课后答案

第一章 误差 1. 试举例,说明什么是模型误差,什么是方法误差. 解: 例如,把地球近似看为一个标准球体,利用公式2 4A r π=计算其表面积,这个近似看为球体的过程产生的误差即为模型误差. 在计算过程中,要用到π,我们利用无穷乘积公式计算π的值: 其中 我们取前9项的乘积作为π的近似值,得 这个去掉π的无穷乘积公式中第9项后的部分产生的误差就是方法误差,也成为截断误差. 2. 按照四舍五入的原则,将下列各数舍成五位有效数字: 816.956 7 6.000 015 17.322 50 1.235 651 93.182 13 0.015 236 23 解: 816.96 6.000 0 17.323 1.235 7 93.182 0.015 236 3. 下列各数是按照四舍五入原则得到的近似数,它们各有几位有效数字? 81.897 0.008 13 6.320 05 0.180 0 解: 五位 三位 六位 四位 4. 若1/4用0.25表示,问有多少位有效数字? 解: 两位 5. 若 1.1062,0.947a b ==,是经过舍入后得到的近似值,问:,a b a b +?各有几位有效数字? 解: 已知4311 d 10,d 1022 a b --< ?

数值计算课后答案4

习 题 四 解 答 1、设010,1x x ==,写出()x f x e -=的一次插值多项式1()L x ,并估计插值误差。 设插值函数为1()L x ax b =+,由插值条件,建立线性方程组为 解之得11 1 a e b -?=-?=? 则11()(1)1L x e x -=-+ 因为(),()x x y x e y x e --'''=-= 所以,插值余项为 所以 01 0101 ()max max (1) 2111248x r x e x x e ξξ-≤≤≤≤-≤ -=?? =。 2选用合适的三次插值多项式来近似计算f(0.2)和f(0.8)。 解:设三次插值多项式为230123()f x a a x a x a x =+++,由插值条件,建立方程组为 即 解之得 则所求的三次多项式为23()0.41 6.29 3.489.98f x x x x =--+。 所以 3、设(0,1,2, ,)i x i n =是 n+1个互异节点,证明: (1)0()(0,1,2, ,)n k k i i i x l x x k n ===∑; (2)0 ()()0(0,1,2, ,)n k i i i x x l x k n =-==∑。 证明: (1)由拉格朗日插值定理,以x 0,x 1,x 2,…x n 为插值节点,对y=f(x)=x k 作n 次插值,插值多项式为 0()()n n i i i p x l x y ==∑, 而y i =x i k ,

所以0 ()()()n n k n i i i i i i p x l x y l x x ====∑∑ 同时,插值余项 所以0()n k k i i i l x x x ==∑ 结论得证。 (2)取函数()(),0,1,2,,k f x x t k n =-= 对此函数取节点(0,1,2,,)i x i n =,则对应的插值多项式为 0()()()n k n i i i p x x t l x ==-∑, 由余项公式,得 (1) (1)011 ()()()()()()()()0 (1)!(1)! n n k k n k i i i r x x t x t l x f x x t x n n ξ ξππ++==---= =-=++∑所以 令t=x , 4 ()f x = (1)试用线性插值计算f(2.3)的近似值,并估计误差; (2)试用二次Newton 插值多项式计算f(2.15)的近似值,并估计误差。 解:用线性插值计算f(2.3),取插值节点为2.2和2.4,则相应的线性插值多项式是 用x=2.3代入,得 (2) 根据定理2f(x)=f(x 0)+f[x 0,x 1](x-x 0)+f[x 0,x 1,x 2](x-x 0)(x-x 1)+… +f[x 0,x 1,…,x n ](x-x 0)(x-x 1)…(x-x n -1) +f[x 0,x 1,…,x n ,x]π(x) 。 以表中的上方一斜行中的数为系数,得 f(2.15)=1.41421+0.3501 ×(2.15-2.0)-0.047 ×(2.15-2.0) ×(2.15-2.1) =1.663725

matlab数值数组及向量化运算

第2章 数值数组及向量化运算 数值数组(Numeric Array )和数组运算(Array Operations )始终是MATLAB 的核心内容。 本章教学内容:数组浮点算法的特点;一、二维数值数组的创建和寻访;常用标准数组生成函数和数组构作技法;数组运算和向量化编程;实现数组运算的基本函数;关系和逻辑操作。 2.1 数值计算的特点和地位 【例2.1-1】已知t t t f cos )(2 =,求dt t f x s x ? = )()(。 (1)符号计算解法 syms t x %定义符号变量 ft=t^2*cos(t) sx=int(ft,t,0,x) ft = t^2*cos(t) sx = x^2*sin(x)-2*sin(x)+2*x*cos(x) (2)数值计算解法 dt=0.05; t=0:dt:5; %取一些离散点 Ft=t.^2.*cos(t); Sx=dt*cumtrapz(Ft); %梯形法求定积分 t(end-4:end) %end 表示最后一个元素 Sx(end-4:end) %Sx 的最后5个元素 plot(t,Sx,'.k','MarkerSize',12) xlabel('x'),ylabel('Sx'),grid on ans = 4.8000 4.8500 4.9000 4.9500 5.0000 ans = -20.1144 -19.9833 -19.7907 -19.5345 -19.2131

图 2.1-1 在区间[0, 5]采样点上算得的定积分值 【例2.1-2】已知 ) sin( )(t e t f- =,求?=4 )( ) (dt t f x s。 本例演示:被积函数没有“封闭解析表达式”,符号计算无法解题!(1)符号计算解法 syms t x ft=exp(-sin(t)) sx=int(ft,t,0,4) ft = exp(-sin(t)) Warning: Explicit integral could not be found. > In sym.int at 58 sx = int(exp(-sin(t)),t = 0 .. 4) (2)数值计算解法 dt=0.05; t=0:dt:4; Ft=exp(-sin(t)); Sx=dt*cumtrapz(Ft); Sx(end) plot(t,Ft,'*r','MarkerSize',4) hold on plot(t,Sx,'.k','MarkerSize',15) hold off xlabel('x') legend('Ft','Sx') ans = 3.0632

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