北京科技大学计算方法大作业

2019-08-03 10:40

计算方法大作业

机械电子工程系 老师:廖福成

注:本文本只有程序题,证明题全部在手写已交到理化楼204了。

32. 证明方程 x?x?1?0

*|xk?1?xk|?10?3[1,2]x在上有一实根,并用二分法求这个根。要求。请给出程

序和运行结果。

1

证明: 设f(x)=x3-x-1

则f(1)= -1, f(2)= 5,f(1)*f(2)= -5<0 因此,方程在[1,2]上必有一实根。 二分法求解程序:

%预先定义homework2.m文件如下: function lc=homework2(x) lc=x^3-x-1;

在MALAB窗口运行: clear

a=1;b=2;tol=10^(-3);N=10000;

k=0; fa=homework2(a); % f 需事先定义 for k=1:N p=(a+b)/2; fp=homework2(p); if( fp==0 || (b-a)/2

if fa*fp<0 b=p; else a=p; end end k,p

程序运行结果: k = 10

p = 1.325195312500000

2

323. 用Newton迭代法求方程 x?2x?10x?20?0

的一个正根,计算结果精确到7位有效数字. 要求给出程序和运行结果. 解:

32'2x?1f(x)?x?2x?10x?20f(x)?3x?4x?10. 0取迭代初值 ,并设,则

f(x)x3?2x2?10x?20?(x)?x?'?x?2f(x)3x?4x?10 牛顿迭代函数为

xk3?2xk2?10xk?20xk?1?xk?23xk?4xk?10牛顿迭格式为:

Matlab程序如下: %定义zuoye3.m文件

function x=zuoye3(fname,dfname,x0,e,N) if nargin<5,N=500;end if nargin<4,e=1e-7;end x=x0;x0=x+2*e;k=0; while abs(x0-x)>e&k

x0=x;x=x0-feval(fname,x0)/feval(dfname,x0); disp(x) end

if k==N,warning('已达上限次数');end 在Matlab窗口中执行:

3

zuoye3(inline('x^3+2*x^2+10*x-20'),inline('3*x^2+4*x+10'),1,1e-7) 结果如下: 1.41176470588235 1.36933647058824 1.36880818861753 1.36880810782137 ans =

1.36880810782137

3x?14. 用牛顿迭代法求方程x?x?1?0在0附近的根. 要求给出程序和运行结

果.

3'2f(x)?x?x?1f(x)?3x?1. 解:令:,则

f(x)x3?x?1?(x)?x?'?x?f(x)3x2?1 牛顿迭代函数为

xk3?xk?1xk?1?xk?23x?1 k牛顿迭格式为:

Matalb程序如下: %定义zuoye4.m文件

function x=zuoye4(fname,dfname,x0,e,N) if nargin<5,N=500;end if nargin<4,e=1e-7;end x=x0;x0=x+2*e;k=0;

4

while abs(x0-x)>e&k

x0=x;x=x0-feval(fname,x0)/feval(dfname,x0); disp(x) end

if k==N,warning('已达上限次数');end

在Matlab窗口执行:

zuoye4(inline('x^3-x-1'),inline('3*x^2-1'),1,1e-7) 结果如下: 1.50000000000000 1.34782608695652 1.32520039895091 1.32471817399905 1.32471795724479 1.32471795724475 ans =

1.32471795724475

6. 编写用全主元Gauss消去法解线性方程组的程序,并求解

5


北京科技大学计算方法大作业.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:《第一节 人的生殖和发育》 习题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: