Newton迭代法算法报告文档格式.doc
- 文档编号:13161786
- 上传时间:2022-10-07
- 格式:DOC
- 页数:14
- 大小:136.50KB
Newton迭代法算法报告文档格式.doc
《Newton迭代法算法报告文档格式.doc》由会员分享,可在线阅读,更多相关《Newton迭代法算法报告文档格式.doc(14页珍藏版)》请在冰豆网上搜索。
失败标志
输出
输出奇
异标志
结束
问题1
(1)程序运行如下:
r=NewtSolveOne('
fun1_1'
pi/4,1e-6,1e-4,10)
r=0.7391
(2)程序运行如下:
fun1_2'
0.6,1e-6,1e-4,10)
r=0.5885
问题2
fun2_1'
0.5,1e-6,1e-4,10)
r=0.5671
fun2_2'
0.5,1e-6,1e-4,20)
r=0.5669
问题3
①p=LegendreIter
(2)
p=1.00000-0.3333
p=LegendreIter(3)
p=1.00000-0.60000
p=LegendreIter(4)
p=1.00000-0.857100.0857
p=LegendreIter(5)
p=1.00000-1.111100.23810
② p=LegendreIter(6)
p=1.00000-1.363600.45450-0.0216
r=roots(p)'
r=-0.932469514203150-0.6612093864662650.932469514203153
0.661209386466264-0.2386191860831970.238619186083197
用二分法求根为:
r=BinSolve('
LegendreP6'
-1,1,1e-6)
r=-0.932470204878826-0.661212531887755-0.238620057397959
0.2386001275510200.6611926020408160.932467713647959
①p=ChebyshevIter
(2)
p=1.00000-0.5000
p=ChebyshevIter(3)
p=1.00000-0.75000
p=ChebyshevIter(4)
p=1.00000-1.000000.1250
p=ChebyshevIter(5)
p=1.00000-1.250000.31250
②p=ChebyshevIter(6)
p=1.00000-1.500000.56250-0.0313
r=-0.965925826289067-0.7071067811865480.965925826289068
0.707106781186547-0.2588190451025210.258819045102521
ChebyshevT6'
r=-0.965929926658163-0.707110969387755-0.258828922193878
0.2588189572704080.7071059869260200.965924944196429
与下列代码结果基本一致,只是元素顺序稍有不同:
j=0:
5;
x=cos((2*j+1)*pi/2/(5+1))
x=0.9659258262890680.7071067811865480.258819045102521
-0.258819045102521-0.707106781186547-0.965925826289068
(3)程序运行如下:
①p=LaguerreIter
(2)
p=1-42
p=LaguerreIter(3)
p=1-918-6
p=LaguerreIter(4)
p=1-1672-9624
p=LaguerreIter(5)
p=1.0000-25.0000200.0000-600.0000600.0000-120.000
②p=LaguerreIter(5)
r=12.6408008442757327.0858100058588913.596425771040711
1.4134030591065200.263560319718141
LaguerreL5'
0,13,1e-6)
r=0.2635603145677221.4134030561057893.596425765631150
7.08581000536072012.640800843813590
(4)程序运行如下:
①p=HermiteIter
(2)
p=HermiteIter(3)
p=1.00000-1.50000
p=HermiteIter(4)
p=1.00000-3.000000.7500
p=HermiteIter(5)
p=1.00000-5.000003.75000
②p=HermiteIter(6)
p=1.00000-7.5000011.25000-1.8750
r=-2.3506049736744872.350604973674488-1.335849074013696
1.335849074013698-0.4360774119276170.436077411927616
HermiteH6'
-3,3,1e-6)
r=-2.350604981792216-1.335849100229691-0.436077818578603
0.4360773514728161.3358489834532442.350604952598104
所用到的函数
functionr=NewtSolveOne(fun,x0,ftol,dftol,maxit)
%NewtSolveOne用Newton法解方程f(x)=0在x0附近的一个根
%
%Synopsis:
r=NewtSolveOne(fun,x0)
%r=NewtSolveOne(fun,x0,ftol,dftol)
%Input:
fun=(string)需要求根的函数及其导数
%x0=猜测根,Newton法迭代初始值
%ftol=(optional)误差,默认为5e-9
%dftol=(optional)导数容忍最小值,小于它表明Newton法失败,默认为5e-9
%maxit=(optional)迭代次数,默认为25
%Output:
r=在寻根区间内的根或奇点
ifnargin<
3
ftol=5e-9;
end
4
dftol=5e-9;
5
maxit=25;
x=x0;
%设置初始迭代位置为x0
k=0;
%初始化迭代次数为0
whilek<
=maxit
k=k+1;
[f,dfdx]=feval(fun,x);
%fun返回f(x)和f'
(x)的值
ifabs(dfdx)<
dftol%如果导数小于dftol,Newton法失败,返回空值
r=[];
warning('
dfdxistoosmall!
'
);
return;
end
dx=f/dfdx;
%x(n+1)=x(n)-f(x(n))/f'
(x(n)),这里设dx=f(x(n))/f'
(x(n))
x=x-dx;
ifabs(f)<
ftol%如果误差小于ftol,返回当前x为根
r=x;
r=[];
%如果牛顿法未收敛,返回空值
functionp=LegendreIter(n)
%LegendreIter用递推的方法计算n次勒让德多项式的系数向量Pn+2(x)=(2*i+3)/(i+2)*x*Pn+1(x)-(i+1)/(i+2)*Pn(x)
p=LegendreIter(n)
n=勒让德多项式的次数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Newton 迭代法 算法 报告