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

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第一章:9.设2

cos 1)(x x

x f -=

,给出计算函数值)012.0(f 的一个合适算法,并在字长m 给定的,十进制计算机上给出数值计算结果。

解:由 )24

21(242)2421(1)cos(1224242x x x x x x x -=-=+-

-≈- 得 )24

21(cos 1)(22x x x x f -≈-=

10. 字长为5的十进制计算机上计算

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

1.0075376410479比较,说明差异存在理由,其中x e x f x 1)(-=,24

621)(3

2x x x x g +++=。

clear

f=@(x)1/2-x^2/24; f(0.012)

ans =

0.5000

解:字长为5时的误差很大,这是因为设置

的字长有限,就不可避免的使舍入误差不断积累。 把字长改为9时,误差已经大幅度减小。这说明,加大字长可以显著减小误差。

11. 举例介绍数组矩阵常见运算。 解:举例如下

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

A*B

ans =

30 30 30 30 70 70 70 70 110 110 110 110 150 150 150 150

A.*B ans =

1 2 3 4 10 12 14 16 27 30 33 36 52 56 60 64 A^2 ans =

A.^2 ans =

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

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 =

%%编写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

12.对任意给定的实数a 、b 、c 、试编写Matlab 程序,求方程02

=++c bx ax 的根。

解:利用教材例11的方法: 当b>0时,a ac b b x 2421---=,b

ac b c x +--=4222。

当b<0时,b

ac b c

x --=4221,a ac

b b x 2422-+-=。

13.利用1

,753arctan 7

53<+-+-=x x x x x x 及

()

3/3arctan 6

,给出一个计算π的方

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

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

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

clear

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

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 输入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

相关文档
最新文档