常州大学数值分析作业(共六章) 下载本文

常州大学数值分析作业(共六章)

第一章:9.设f(x)?1?cosx,给出计算函数值f(0.012)的一x2clear f=@(x)1/2-x^2/24; f(0.012) ans = 0.5000 个合适算法,并在字长m给定的,十进制计算机上给出数值计算结果。

x2x4x2x4x221?)???x(?) 解:由 1?cos(x)?1?(1?2242242241?cosx1x2?(?) 得 f(x)?x222410. 字长为5的十进制计算机上计算

f(0.015)和g(0.015),并与f(0.015)的精确值

ex?1xx2x31.0075376410479比较,说明差异存在理由,其中f(x)?,g(x)?1???。

x26241 / 19

常州大学数值分析作业(共六章)

%%编写m文件使用digit函数设置字长%% function y=digit(x,m) k=max(size(x)); y=x; for i=1:k if x(i)<0 sign=-1; else sign=1; end x(i)=abs(x(i)); p=0; if x(i)<0.1&x(i)>eps while x(i)<0.1 x(i)=x(i)*10; p=p-1; end end if x(i)>=1 while x(i)>=1 x(i)=x(i)/10; p=p+1; end end y(i)=round(x(i)*10^m)/10^m; y(i)=sign*y(i)*10^p; end return clear A=[1:4;5:8;9:12;13:16] B=[1,1,1,1;2,2,2,2;3,3,3,3;4,4,4,4] A’ A = 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 B = 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4 ans = 1 5 9 13 2 6 10 14 3 7 11 15 4 8 12 16 clear f=@(x)digit(digit(exp(x)-1,5)/x,5); g=@(x)digit(digit(1,5)+digit(x/2,5)+digit... (digit(x^2,5)/6,5)+digit(digit(x^3,5)/24,5),5); exc=1.0075376410479; f(0.015) g(0.015) err1=f(0.015)-exc err2=g(0.015)-exc ans = 1.0075 ans = 1.0075 err1 = -3.7641e-05 err2 = -3.7641e-05 f=@(x)digit(digit(exp(x)-1,9)/x,9); g=@(x)digit(digit(1,9)+digit(x/2,9)+digit... (digit(x^2,9)/6,9)+digit(digit(x^3,9)/24,9),9); err1=f(0.015)-exc err2=g(0.015)-exc err1 = -1.0479e-09 err2 = -1.0479e-09 解:字长为5时的误差很大,这是因为设置的字长有限,就不可避免的使舍入误差不断积累。 把字长改为9时,误差已经大幅度减小。这说明,加大字长可以显著减小误差。 11. 举例介绍数组矩阵常见运算。 解:举例如下 A*B A.*B ans = 1 2 3 4 10 12 14 16 27 30 33 36 52 56 60 64 A.^2 ans = 2 / 19 1 4 9 16 25 36 49 64 81 100 121 144 169 196 225 256 ans = 30 30 30 30 70 70 70 70 110 110 110 110 150 150 150 150 A^2 ans = 90 100 110 120 202 228 254 280 314 356 398 440 426 484 542 600 常州大学数值分析作业(共六章)

A+B ans = 2 3 4 5 7 8 9 10 12 13 14 15 17 18 19 20

A-B ans = 0 1 2 3 3 4 5 6 6 7 8 9 9 10 11 12 212.对任意给定的实数a、b、c、试编写Matlab程序,求方程ax?bx?c?0的根。

?2c?b?b2?4ac解:利用教材例11的方法: 当b>0时,x1?,x2?。

22ab?4ac?bclear a=input('输入a='); b=input('输入b='); c=input('输入c='); d=b^2-4*a*c if b>=0 x1=(-b-d^0.5)/2*a x2=-2*c/(d^0.5+b) else b<0 x1=-2*c/(d^0.5-b) x2=(-b+d^0.5)/2*a end ?b?b2?4ac 当b<0时,x1?,x2?。 22ab?4ac?b2c输入a=2 输入b=2 输入c=1 d = -4 x1 = -2.0000 - 2.0000i x2 = -0.5000 + 0.5000i 输入a=1 输入b=2 输入c=1 d = 0 x1 = -1 x2 = -1 输入a=1 输入b=5 输入c=2 d = 17 x1 = -4.5616 x2 = -0.4384

clear x=3^(-0.5); y=atan(x) ; %精确值% s=0 ; %计算值% for k=1:2:100; s=s+(-1)^((k+1)/2)*(x^k)/k; err=y-s; m=abs(err) if m<=1e-11 break end end pi=6*s x3x5x713.利用arctanx?x?????,x?1357及

?6?arctan3/3,给出一个计算π的方

??法,根据此方法编写程序,给出π的至少有10位有效数字的近似值。

解:根据题中所给公式,容易得到:

3 / 19