数值分析小论文

更新时间:2023-11-15 19:57:02 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

牛顿迭代法求√d

定理1 假设函数f (x)在有限区间[a , b]上有二阶导数,且满足条件:

(1) f(a)f(b) < 0

(2) f’(x)≠0, x∈[a , b] (3) f’’(x)在[a , b]上不变号

(4)∣f (a)/ f ’ (a)∣< b-a , ∣f (b)/ f ’ (b)∣< b-a

则Newton法x(k+1)=x(k)-f (x)/ f ’ (x),k=0,1,2…产生的序列{x(n)}对任意的初始值x(0)∈[a , b]都收敛于方程f (x)=0在区间(a , b)内的唯一解p, 收敛阶数为2.

我们可以用Newton法计算平方根√d ,d > 0.

令f (x) = x ^ 2-d , x >0. 求平方根d的问题便化为求方程f (x) = 0的根。此时,Newton迭代公式为

x(k+1)= x(k)-( x ^ 2- d)/(2x(k))=1/2(x(k)+d/x(k)) , k=0, 1, 2 …(*)

例证明对于任意的初始值x(1)>0, 由迭代公式(*)产生的序列 {x(k)}都收敛于√d ,并且收敛阶为2.

证明取a, b使0< a <√d < b , 我们验证此定理的条件成立。 由于(b – a)^ 2 >0 ,因此有b^2 - 2ab + d > 0. 从而有-(b-a)< f (b)/ f ’(b) = (b^2-d)/(2b) < b – a. 显然f (a)/ f ’ (a) = (a^2 - d)/(2a) < b – a.

为了使(a^2 -d)/(2a) >-(b -a)只需取b > 1/2( a + d/a).

而1/2( a + d/a)≥√d ,因此,取b > 1/2( a + d/a) 时,仍有b>√d .

这样,对于所选取的区间[a, b],其中0 < a <√d, b > 1/2( a + d/a). 定理1中的条件(4)成立。易知条件(1),(2)和(3)也成立。 根据定理1知,迭代法(*)对于任意的初始值x(0)∈[a, b]都收敛,且收敛阶数为2.

由于a可取得任意小,因此对任意的初始值x(0) > 0,由迭代公式(*)产生的序列{x(k)}都收敛于√d。 算法介绍:

输入x 的精度要求e。迭代初x1。迭代次数的i最大值maxi。 for(i=0;i #include main() {

否 迭代次数超过上限,异常退出。 否 double e,x0,x1,d; longi,maxi;

printf(\请输入d的值(d>=0):\scanf(\getchar();

printf(\请输入x的精度要求:\scanf(\getchar();

printf(\请输入迭代初值:\scanf(\getchar();

printf(\请输入最大迭代次数:\scanf(\getchar();

for(i=0;i<=maxi;i++) { x0=x1;

x1=x0-(x0*x0-d)/(2*x0); if(fabs(x1-x0)

printf(\方程x^2-%lf=0的正根x=%lf\else

printf(\迭代次数已超过上限。\getchar(); }

定理2设x*为方程x=g(x)的根,g'(x)在x*的邻域U内连续且 ∣g’(x*)∣< 1,则迭代过程x(k+1)在x*邻近具有局部收敛性。 推论设g(x)在方程x=g(x)的根x*邻近具有连续的p(p≧2)阶导数且g’(x*)= g’’(x*)=…= g(p-1)(x*)=0而g(p)(x*)≠0,则迭代过程x(k+1)=g(x(k+1))为p阶收敛。

定理 3 假设函数f(x)在包含x*的某邻域内有p(p≧2)阶连续导数,x*为方程f(x)=0的单根,则当x(0)充分接近x*时,牛顿法收敛且至少为二阶收敛。

证明:令g(x)=x- f(x)/ f’(x)

则g(x)=1-[ f’(x) f’(x)- f(x) f’’(x)]/[ f’(x)]∧2 = f(x) f’’(x) /[ f’(x)]∧2 ∵x*为f(x)的单重零点 ∴f(x*)=0,f’(x*)≠0 ∴g’(x*)=0

根据定理2的推论断定牛顿法在根x*附近至少是二阶收敛的。 例用牛顿迭代法求方程x∧3-a=0导出立方根3√a的迭代公式并讨论其收敛阶。

解:令f(x)= x∧3-a

则牛顿迭代公式x(k+1)=x(k)-( x(k)∧3-a) / (3x(k) ∧2) 迭代函数为g(x)=2x/3+a/(3 x∧2) g’(x)= 2/3-2a/(3 x∧3), g’’(x)=2a/( x∧4) 将x=3√a代入得g’(x)=0 ,g’’(x)= 2/3√a

故用牛顿迭代法求解x∧3-a=0导出立方根3√a的迭代公式是二阶收敛的。

例用牛顿迭代法求方程x∧n-a=0导出立方根n√a的迭代公式并讨论其收敛阶。 解:令f(x)= x∧n-a

则牛顿迭代公式x(k+1)=x(k)-( x(k)∧n-a) / (nx(k) ∧(n-1)) 迭代函数为g(x)=(n-1)x/n+a/(n x∧(n-1))

g’(x)= (n-1)/n-(n-1)a/(n x∧n), g’’(x)=(n-1)a/( x∧(n+1)) 将x=3√a代入得g’(x)=0 ,g’’(x)= (n-1)/n√a

故用牛顿迭代法求解x∧n-a=0导出立方根n√a的迭代公式是二阶收敛的。

开n次方根 #include #include main() {

本文来源:https://www.bwwdw.com/article/82iv.html

Top