非线性方程求根数值试验.doc

上传人:PIYPING 文档编号:11550866 上传时间:2021-08-23 格式:DOC 页数:13 大小:69KB
返回 下载 相关 举报
非线性方程求根数值试验.doc_第1页
第1页 / 共13页
非线性方程求根数值试验.doc_第2页
第2页 / 共13页
非线性方程求根数值试验.doc_第3页
第3页 / 共13页
非线性方程求根数值试验.doc_第4页
第4页 / 共13页
非线性方程求根数值试验.doc_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《非线性方程求根数值试验.doc》由会员分享,可在线阅读,更多相关《非线性方程求根数值试验.doc(13页珍藏版)》请在三一文库上搜索。

1、试验一:二分法求根function x k=bisect1(fun1,a,b,tol) if nargin tol t=a+(b-a)/2; ft=feval(fun1,t); if sign(ft)=sign(fb) fb=ft; b=t; elseif sign(ft)=sign(fa) fa=ft; a=t; end k=k+1; end x=a+(b-a)/2; fun1=inline(x3-x-1);x k=bisect1(fun1,1,2,0.005)x = 1.32421875k =8 x k=bisect1(fun1,1,2,0.00005)x = 1.324737548828

2、13k =15试验二:迭代法求根function x0,k=diedai3(fname,x0,ep,N)if nargin4 N=500;endif narginep & kfname=inline(x+1)(1/3);x0,k=diedai3(fname,1.5,0.00000005)x0 = 1.32471796764309k = 10fname=inline(cos(x);x0,k=diedai3(fname,0.8,0.0000005)x0 = 0.739085333292374k = 32试验三:牛顿迭代求根function x0,k=Newton7(fname,dfname,x0,

3、ep,N)if nargin5 N=500;endif narginep & kN x0=x;x=x0-feval(fname,x0)/feval(dfname,x0) k=k+1;endx0=x;fname=inline(x3-x-1) dfname=inline(3*x2-1) x0,k=Newton7(fname,dfname,1.5)x0 = 1.32471795724479k = 4 x0,k=Newton7(fname,dfname,1.5, 10(-16)x0 = 1.32471795724475k = 6fname=inline(x-cos(x) dfname=inline(1

4、+sin(x) x0,k=Newton7(fname,dfname,0.8 , 10(-16)x0 = 0.739085133215161k = 5 fname=inline(9*x2-sin(x)-1); dfname=inline(18*x-cos(x); x0,k=Newton7(fname,dfname,0.4,10(-16)x0 = 0.391846907002648k = 5试验四:牛顿迭代法求重根的收敛速度fname=inline(x4-4*x2+4)dfname=inline(4*x3-8*x)x0,k=Newton7(fname,dfname,1, 10(-16)x0 = 1

5、.41421355761049k =27function x0,k=Newton71(fname,dfname,x0,ep,N)if nargin5 N=500;endif narginep & kN x0=x;x=x0-2*feval(fname,x0)/feval(dfname,x0); k=k+1;endx0=x;x0,k=Newton71(fname,dfname,1, 10(-16)x0 = 1.41421356242695k = 9牛顿法求重根时是线性收敛的。此时,需将牛顿格式修改,以达到平方收敛。试验五:下山牛顿迭代fname=inline(x3-x-1); dfname=inl

6、ine(3*x2-1); x0,k=Newton7(fname,dfname,0.6)x0 = 1.32471795724475k = 12由于初值的选取不适当,使得牛顿迭代收敛比较慢下山牛顿迭代法function x0,k,f=Newton8(fname,dfname,x0,ep,N)if nargin5 N=500;endif narginep & kabs(feval(fname,x0) r=r/2; x=x0-r*feval(fname,x0)/feval(dfname,x0); end x0=x; x=x0-feval(fname,x0)/feval(dfname,x0); f=ab

7、s(feval(fname,x0); endx0=x;fname=inline(x3-x-1); dfname=inline(3*x2-1);x0,k,f=Newton8(fname,dfname,0.6)x0 = 1.32471795724977k = 4f = 9.89854166122406e-006 fname=inline(x3/3-x); dfname=inline(x2-1);x0,k,f=Newton8(fname,dfname,-0.99)x0 = 1.73205080756888k = 5f = 1.04839176229277e-007x0,k,f=Newton8(fna

8、me,dfname,0.99)x0 = -1.73205080756888k = 6f = 2.18002567109465e-008 x0,k,f=Newton8(fname,dfname,0.1)x0 = 0k = 3f =2.0357740623464e-010试验六:割线法求根function x0,k=gexian(fname,x0,x1,ep,N)if nargin5 N=500;endif narginep & k x0,k=gexian(fname,1,2)x0 = 1.73205081100693k = 6 fname=inline(x3-x-1); x0,k=gexian(fname,1,2)x0 = 1.32471795724467k = 7 试验七:简单迭代法的加速技巧function x0 k=aitken(fun,x0,ep,N) if nargin 4 N=500; end if nargin ep & k fun=inline(x+1)(1/3);x0 k=aitken(fun,1.5)x0 = 1.32471795724475k = 3fun=inline(x3-1);x0 k=aitken(fun,1.5)x0 = 1.32471795724475k = 6

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1