计算方法实验
实验一常用计算方法及描述统计量分析

实验一常用计算方法及描述统计量分析1.引言描述统计量是统计学中常用的数据分析方法。
通过统计样本数据的各种特征指标,可以对总体数据的一些性质进行分析和描述。
本实验主要介绍几种常用的计算方法及描述统计量分析。
2.均值均值是描述数据集中趋势的一个重要统计量。
一组数据的均值可以通过将所有观察值相加,然后除以观察值的总数来计算。
均值可以用来描述一个数据集的集中趋势,通常用符号μ来表示。
3.中位数中位数是将一组有序数据划分为较小和较大两部分的值,位于中间位置的值。
对于一个有序的数据集,中位数就是位于中间位置的数值。
如果数据集的观察值个数是奇数,则中位数是排在中间的值;如果数据集的观察值个数是偶数,中位数是排在中间两个值的平均值。
4.众数众数是数据集中出现频率最高的数值。
一个数据集可以有一个或多个众数。
众数可以用来描述数据集中出现频率最高的数值,通常用符号Mo 表示。
5.极差极差是描述数据集分散程度的一个统计量。
它是数据集中最大值与最小值的差别。
极差可以用来描述数据集的波动性,如果极差较大,说明数据分散程度较大。
6.方差方差是描述数据集分散程度的一个统计量。
方差是数据与其均值之间差异的平均平方值。
方差可以用来描述数据集的波动性,如果方差较大,说明数据分散程度较大。
7.标准差标准差是描述数据集分散程度的一个统计量。
标准差是方差的平方根,用符号σ来表示。
标准差可以用来描述数据集的波动性,如果标准差较大,说明数据分散程度较大。
8.相关系数相关系数是描述两个变量之间关系强度的一个统计量。
相关系数的取值范围在-1到1之间,当相关系数为正时,表示两个变量正相关,当相关系数为负时,表示两个变量负相关。
相关系数可以用来描述两个变量之间的关联程度。
9.回归分析回归分析是一种描述和预测变量之间关系的方法。
回归分析可以用来研究因变量与自变量之间的关系,并通过建立回归方程对因变量进行预测和解释。
10.结论通过实验一的学习,我们了解了常用的计算方法及描述统计量分析。
计算方法 实验一 方程求根

实验一方程求根(1)二分法
1、实验程序
实现二分法的MATLAB函数文件agui_bisect.m
2. 在MATLAB命令窗口输入及实验结果及操作界面
(2)迭代法
1、实验程序
实现二分法的MATLAB函数文件agui_iterative.m
2、在MATLAB命令窗口输入及实验结果及操作界面
(3)牛顿法
1、实验程序
实现二分法的MATLAB函数文件agui_newton.m
2、在MATLAB命令窗口输入及实验结果及操作界面
结果分析:
由上面的对二分法、迭代法、牛顿法三种方法的三次实验结果,我们可以得出这样的结论:
二分法要循环k=10次,迭代法要迭代k=4次,牛顿法要迭代k=2次才能达到精度为0.5*10^-3的要求,而且方程0210=-+x e x
的精确解经计算,为0.0905250,由此可知,牛顿法和迭代法的精确度要优越于二分法。
而这三种方法中,牛顿法不仅计算量少,而且精确度高。
从而可知牛顿迭代法收敛速度明显加快,但由所学的内容可知,其收敛性与初值有关,它是局部收敛的。
二分法收敛虽然是速度最慢,但也常用于求精度不高的近似根。
而迭代法是逐次逼近的方法,原理简单,但存在收敛性和收敛速度的问题。
总之各种方法都各有优劣,适用于不同的情况中,须具体情况具体分析。
计算方法实验报告

班级:地信11102班序号: 20姓名:任亮目录计算方法实验报告(一) (3)计算方法实验报告(二) (6)计算方法实验报告(三) (9)计算方法实验报告(四) (13)计算方法实验报告(五) (18)计算方法实验报告(六) (22)计算方法实验报告(七) (26)计算方法实验报告(八) (28)计算方法实验报告(一)一、实验题目:Gauss消去法解方程组二、实验学时: 2学时三、实验目的和要求1、掌握高斯消去法基础原理2、掌握高斯消去法法解方程组的步骤3、能用程序语言对Gauss消去法进行编程实现四、实验过程代码及结果1、实验算法及其代码模块设计(1)、建立工程,建立Gauss.h头文件,在头文件中建类,如下:class CGauss{public:CGauss();virtual ~CGauss();public:float **a; //二元数组float *x;int n;public:void OutPutX();void OutputA();void Init();void Input();void CalcuA();void CalcuX();void Calcu();};(2)、建立Gauss.cpp文件,在其中对个函数模块进行设计2-1:构造函数和析构函数设计CGauss::CGauss()//构造函数{a=NULL;x=NULL;cout<<"CGauss类的建立"<<endl;}CGauss::~CGauss()//析构函数{cout<<"CGauss类撤销"<<endl;if(a){for(int i=1;i<=n;i++)delete a[i];delete []a;}delete []x;}2-2:函数变量初始化模块void CGauss::Init()//变量的初始化{cout<<"请输入方程组的阶数n=";cin>>n;a=new float*[n+1];//二元数组初始化,表示行数for(int i=1;i<=n;i++){a[i]=new float[n+2];//表示列数}x=new float[n+1];}2-3:数据输入及输出验证函数模块void CGauss::Input()//数据的输入{cout<<"--------------start A--------------"<<endl;cout<<"A="<<endl;for(int i=1;i<=n;i++)//i表示行,j表示列{for(int j=1;j<=n+1;j++){cin>>a[i][j];}}cout<<"--------------- end --------------"<<endl;}void CGauss::OutputA()//对输入的输出验证{cout<<"-----------输出A的验证-----------"<<endl;for(int i=1;i<=n;i++){for(int j=1;j<=n+1;j++){cout<<a[i][j]<<" ";}cout<<endl;}cout<<"---------------END--------------"<<endl;}2-4:消元算法设计及实现void CGauss::CalcuA()//消元函数for(int k=1 ;k<n;k++){for(int i=k+1;i<=n;i++){double lik=a[i][k]/a[k][k];for(int j=k;j<=n+1;j++){a[i][j]-=lik*a[k][j];}a[i][k]=0; //显示消元的效果}}}2-5:回代计算算法设计及函数实现void CGauss::CalcuX()//回带函数{for(int i=n;i>=1;i--){double s=0;for(int j=i+1;j<=n;j++){s+=a[i][j]*x[j];}x[i]=(a[i][n+1]-s)/a[i][i];}}2-6:结果输出函数模块void CGauss::OutPutX()//结果输出函数{cout<<"----------------X---------------"<<endl;for(int i=1 ;i<=n;i++){cout<<"x["<<i<<"]="<<x[i]<<endl;}}(3)、“GAUSS消元法”主函数设计int main(int argc, char* argv[]){CGauss obj;obj.Init();obj.Input();obj.OutputA();obj.CalcuA();obj.OutputA();obj.CalcuX();obj.OutPutX();//obj.Calcu();return 0;2、实验运行结果计算方法实验报告(二)一、实验题目:Gauss列主元消去法解方程组二、实验学时: 2学时三、实验目的和要求1、掌握高斯列主元消去法基础原理(1)、主元素的选取(2)、代码对主元素的寻找及交换2、掌握高斯列主元消去法解方程组的步骤3、能用程序语言对Gauss列主元消去法进行编程实现四、实验过程代码及结果1、实验算法及其代码模块设计(1)、新建头文件CGuassCol.h,在实验一的基础上建立类CGauss的派生类CGuassCol公有继承类CGauss,如下:#include "Gauss.h"//包含类CGauss的头文件class CGaussCol:public CGauss{public:CGaussCol();//构造函数virtual ~CGaussCol();//析构函数public:void CalcuA();//列主元的消元函数int FindMaxIk(int k);//寻找列主元函数void Exchange(int k,int ik);//交换函数void Calcu();};(2)、建立CGaussCol.cpp文件,在其中对个函数模块进行设计2-1:头文件的声明#include "stdafx.h"#include "CGuassCol.h"#include "math.h"#include "iostream.h"2-2:派生类CGaussCol的构造函数和析构函数CGaussCol::CGaussCol()//CGaussCol类构造函数{cout<<"CGaussCol类被建立"<<endl;}CGaussCol::~CGaussCol()//CGaussCol类析构函数{cout<<"~CGaussCol类被撤销"<<endl;}2-3:高斯列主元消元函数设计及代码实现void CGaussCol::CalcuA()//{for(int k=1 ;k<n;k++){int ik=this->FindMaxIk(k);if(ik!=k)this->Exchange(k,ik);for(int i=k+1;i<=n;i++){float lik=a[i][k]/a[k][k];for(int j=k;j<=n+1;j++){a[i][j]-=lik*a[k][j];}}}}2-4:列主元寻找的代码实现int CGaussCol::FindMaxIk(int k)//寻找列主元{float max=fabs(a[k][k]);int ik=k;for(int i=k+1;i<=n;i++){if(max<fabs(a[i][k])){ik=i;max=fabs(a[i][k]);}}return ik;}2-5:主元交换的函数模块代码实现void CGaussCol::Exchange(int k,int ik)//做交换{for(int j=k;j<=n+1;j++){float t=a[k][j];a[k][j]=a[ik][j];a[ik][j]=t;}}(3)、建立主函数main.cpp文件,设计“Gauss列主元消去法”主函数模块3-1:所包含头文件声明#include "stdafx.h"#include "Gauss.h"#include "CGuassCol.h"3-2:主函数设计int main(int argc, char* argv[]){CGaussCol obj;obj.Init();//调用类Gauss的成员函数obj.Input();//调用类Gauss的成员函数obj.OutputA();//调用类Gauss的成员函数obj.CalcuA();obj.OutputA();obj.CalcuX();obj.OutPutX();return 0;}2、实验结果计算方法实验报告(三)一、实验题目:Gauss完全主元消去法解方程组二、实验学时: 2学时三、实验目的和要求1、掌握高斯完全主元消去法基础原理;2、掌握高斯完全主元消去法法解方程组的步骤;3、能用程序语言对Gauss完全主元消去法进行编程(C++)实现。
「实验报告计算方法」

「实验报告计算方法」实验报告的计算方法包括统计数据的处理、数据分析与图表的绘制等内容。
下面将以实验报告中常见的计算方法为例进行详细介绍。
首先,实验报告中常见的计算方法之一是平均值的计算。
在实验中,往往需要多次重复测量同一个实验现象或现象相关的参数,然后将测得的数据求平均值。
计算平均值的步骤如下:1.将测得的数据依次排列;2.求出所有数据的总和;3.将总和除以数据的个数,得到平均值。
例如,实验中测得物体从起点到终点的位移分别为32 cm、35 cm和38 cm,那么求位移的平均值时,先将这3个数相加得到:32 + 35 + 38 = 105 cm,然后将总和105除以3(数据的个数),得到位移的平均值为35 cm。
第二,实验报告中还常常需要计算数据组的标准差。
标准差是用来描述一组数据的离散程度的指标,用来衡量数据的分散程度。
计算标准差的步骤如下:1.求出数据的平均值;2.将每组数据减去平均值后的差值平方;3.将所有平方差值相加;4.将总和除以数据的个数;5.将上一步骤的结果开平方,得到标准差。
例如,实验中测得物体从起点到终点的位移分别为32 cm、35 cm和38 cm,先求位移的平均值得到35 cm,然后将每组数据减去平均值后的差值平方,得到:(32-35)^2 + (35-35)^2 + (38-35)^2 = 9 + 0 + 9 = 18,然后将平方差值相加得到18,再将18除以3(数据的个数),得到6,最后将6开平方,得到标准差为2.45 cm。
第三,实验报告中还涉及数据的比较与分析。
通过比较不同样本或者不同实验条件下的数据来推导结论。
常用的比较与分析方法有:T检验、方差分析、线性回归等。
T检验用于比较两组数据的均值是否存在显著差异。
根据两组数据的均值、标准差和数据个数,通过T检验的统计分析可以给出是否存在显著差异的结论。
方差分析用于比较多组数据的均值是否存在显著差异。
根据多组数据的均值、标准差和数据个数,通过方差分析的统计分析可以给出是否存在显著差异的结论。
《计算方法》上机实验指导书刘轶中-8页word资料

理学院《计算方法》实验指导书适合专业:信息与计算科学数学与应用数学贵州大学二OO七年八月前言《计算机数值计算方法》包括很多常用的近似计算的处理手段和算法,是计算科学与技术专业的必修课程,为了加强学生对该门课程的理解,使学生更好地掌握书中的计算方法、编制程序的能力,学习计算方法课程必须重视实验环节,即独立编写出程序,独立上机调试程序,必须保证有足够的上机实验时间。
在多年教学实践基础上编写了《计算机数值计算方法》上机实习指南,目的是通过上机实践,使学生能对教学内容加深理解,同时培养学生动手的能力.本实习指南,可与《计算机数值计算方法》课本配套使用,但是又有独立性,它不具体依赖哪本教科书,主要的计算方法在本指南中都有,因此,凡学习计算方法课的学生都可以参考本指南进行上机实习。
上机结束后,按要求整理出实验报告。
实验报告的内容参阅《计算机数值计算方法》上机实验大纲。
目录第一章解线性方程组的直接法实验一 Gauss列主元素消去法实验二解三对角线性方程组的追赶法第二章插值法与最小二乘法实验三 lagrange插值法实验四分段插值法实验五 曲线拟合的最小二乘法第三章 数值积分实验六 复合求积法实验七 变步长法第四章 常微分方程数值解法实验八 Euler 方法第五章 解线性方程组和非线性方程的迭代法实验九 Jacobi 迭代法、Gauss-Seidel 迭代法实验十 Newton 迭代法实验一 : Gauss 列主元素消去法实验学时:2实验类型:验证实验要求:必修一、实验目的用gauss 消去法求线性方程组AX=b. 其中一、 实验内容二、 实验条件PC 机,tc2.0,Internet 网。
三、 实验步骤1.根据算法事先写出相应程序。
2.启动PC 机,进入tc 集成环境,输入代码。
3.编译调试。
4. 调试通过,计算出正确结果后。
实验二 解三对角线性方程组的追赶法⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎣⎡=b b b x x x a a a a a a a a a n n nn n n n n b X A M M 2122122221112111....................................实验学时:2实验类型:验证实验要求:必修一、实验目的二、实验内容三、实验组织远行要求统一进行实验,一人一组四、实验条件PC机,tc2.0,Internet网五、实验步骤a)根据算法事先写出相应程序。
计算方法非线性方程求根实验

f (a ) ⋅ f (b) < 0 ;又设 f ( x) 的一个零点 x* ∈ (a, b) 的近似值 (设f ′( x0 ) ≠ 0) 。用过曲
计算方法实验五牛顿法,牛顿下山法,切线法,二分法

计算机实现数值积分 实验目的:非线性方程求解 实验内容:1.二分法的 Matlab 实现; 2.牛顿法的 Matlab 实现; 3.牛顿下山法、割线法、艾特金加速法、重根 迭代法、非线性方程组牛顿法中任选其一。 实验要求:1.每种算法要求达到给定的精度,输出近似 解结果及所需迭代次数; 2. P.239、171,或自选题目; 3.每个算法至少实验一个题目。
Therefore,the root is x=1.3571,iteration number is k=2.
6.在 MATLAB 工作窗口输入程序 [k,xk,yk,piancha,xdpiancha]=newtonqx(1,1e-8, 1e-8,100) 7.运行结果 y =16 y =26 y =0.3350 ans =1.0000 1.3846 0.3350 0.6154 0.4444 y =0.3350 y =18.5207 y =-0.0481
-0.0481
0.0181
0.0132
0.0072
0.0026
0.0019
-0.0011
0.0004
0.0003
0.0002
0.0001
0.0000
-0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
-0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
-0.0000
Therefore,the root is x=1.3688,iteration number is k=7.
pare the number of computations for finding the root of
计算方法实验报告(附代码)

实验一 牛顿下山法实验说明:求非线性方程组的解是科学计算常遇到的问题,有很多实际背景.各种算法层出不穷,其中迭代是主流算法。
只有建立有效的迭代格式,迭代数列才可以收敛于所求的根。
因此设计算法之前,对于一般迭代进行收敛性的判断是至关重要的。
牛顿法也叫切线法,是迭代算法中典型方法,只要初值选取适当,在单根附近,牛顿法收敛速度很快,初值对于牛顿迭代 至关重要。
当初值选取不当可以采用牛顿下山算法进行纠正。
牛顿下山公式:)()(1k k k k x f x f x x '-=+λ下山因子 ,,,,322121211=λ下山条件|)(||)(|1k k x f x f <+实验代码:#include<iostream> #include<iomanip> #include<cmath>using namespace std;double newton_downhill(double x0,double x1); //牛顿下山法函数,返回下山成功后的修正初值double Y; //定义下山因子Y double k; //k为下山因子Y允许的最小值double dfun(double x){return 3*x*x-1;} //dfun()计算f(x)的导数值double fun1(double x){return x*x*x-x-1;} //fun1()计算f(x)的函数值double fun2(double x) {return x-fun1(x)/dfun(x);} //fun2()计算迭代值int N; //N记录迭代次数double e; //e表示要求的精度int main(){double x0,x1;cout<<"请输入初值x0:";cin>>x0;cout<<"请输入要求的精度:";cin>>e;N=1;if(dfun(x0)==0){cout<<"f'(x0)=0,无法进行牛顿迭代!"<<endl;}x1=fun2(x0);cout<<"x0"<<setw(18)<<"x1"<<setw(18)<<"e"<<setw(25)<<"f(x1)-f(x0)"<<endl;cout<<setiosflags(ios::fixed)<<setprecision(6)<<x0<<" "<<x1<<" "<<fabs(x1-x0)<<" "<<fabs(fun1(x1))-fabs(fun1(x0))<<endl;if(fabs(fun1(x1))>=fabs(fun1(x0))){ //初值不满足要求时,转入牛顿下山法x1=newton_downhill(x0,x1);} //牛顿下山法结束后,转入牛顿迭代法进行计算while(fabs(x1-x0)>=e){ //当精度不满足要求时N=N+1;x0=x1;if(dfun(x0)==0){cout<<"迭代途中f'(x0)=0,无法进行牛顿迭代!"<<endl;} x1=fun2(x0);cout<<setiosflags(ios::fixed)<<setprecision(6)<<x0<<" "<<x1<<" "<<fabs(x1-x0)<<endl;}cout<<"迭代值为:"<<setiosflags(ios::fixed)<<setprecision(6)<<x1<<'\n';cout<<"迭代次数为:"<<N<<endl;return 0;}double newton_downhill(double x0,double x1){Y=1;cout<<"转入牛顿下山法,请输入下山因子允许的最小值:";cin>>k;while(fabs(fun1(x1))>=fabs(fun1(x0))){if(Y>k){Y=Y/2;}else {cout<<"下山失败!";exit(0);}x1=x0-Y*fun1(x0)/dfun(x0);}//下山成功则cout<<"下山成功!Y="<<Y<<",转入牛顿迭代法计算!"<<endl;return x1;}实验结果:图4.1G-S 迭代算法流程图实验二 高斯-塞德尔迭代法实验说明:线性方程组大致分迭代法和直接法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一:姓名:学号:班级:2013级计算机6班实验地点:第二机房实验时间:2015/3/171 实验目的和要求1. 二分法求方程的根2. 基本迭代法求方程的根3. 用埃特金求方程010423=-+x x 在1.5处的一个根,精度要求410-。
4. 牛顿下山法求方程的根求方程013=--x x 的根,初值取6.00=x ,精度满足510-。
5. 牛顿迭代法求解7,精度满足510-2 实验环境和工具机房VC63 实验结果3.1 算法流程图3.2 程序核心代码二分法代码#include<iostream.h>#include<math.h>void main(){double x,a=1.0,b=1.5;for(int i=1;i<10;i++){x=(a+b)/2;if((a*a*a-a-1)*(x*x*x-x-1)<0) b=x;elsea=x;if(b-a<0.01) break;cout<<x<<endl;}}直接迭代法#include<iostream.h>#include<math.h>void main(){double x0=0.5,x,e=2.718281;for(int i=1;i<20;i++){x=pow(e,-x0);if(x-x0<0.00001) break;cout<<x<<endl;x0=x;}}爱特金方程代码#include<iostream>#include<math.h>#include<iomanip>using namespace std;//////////double fun(double x);void AitkenIterative(double(*pf)(double x)); ////////////////////int main(){AitkenIterative(fun);return 0;}////////////////////double fun(double x){return 10/(x*x+4*x);}void AitkenIterative(double(*pf)(double x)){double x,x0;int maxflag,k=1;double err;double temp1,temp2;cout<<endl<<" 请输入最大迭代次数(推荐10000):maxflag=";cin>>maxflag;cout<<" 请输入精度要求:err=";cin>>err;cout<<" 请输入初始值:x0=";cin>>x;cout<<endl;do{x0=x;temp1=pf(x0);temp2=pf(temp1);x=temp2-(temp2-temp1)*(temp2-temp1)/(temp2-2*temp1+x0);cout<<" 第"<<k<<"步迭代的结果为:x("<<k<<")="<<x<<endl;++k;}while(fabs(x-x0)>err&&k<maxflag);if(k>=maxflag)cout<<" 迭代失败!此时k="<<k<<endl;else{cout<<" 迭代成功!迭代次数为:k="<<k-1<<endl;cout<<" 方程的近似根为:root="<<x<<endl;cout<<" 函数值近似为:"<<pf(x)-x<<endl;}}4牛顿下山法核心代码int main(){NewtonIterative(fun,dfun);return 0;}double fun(double x){return (x*x*x-x-1);}double dfun(double x){return (3*x*x-1);}void NewtonIterative(double(*pfun)(double x),double (*pdfun)(double x)){int maxn,maxflag,k,n;k=1;n=0;double x0,x,temp;double err;cout<<endl<<" 请输入最大迭代次数(推荐10000):maxflag=";cin>>maxflag;cout<<endl<<" 请输入下山因子最多挑选次数(推荐10):maxn=";cin>>maxn;cout<<" 请输入精度要求:err=";cin>>err;cout<<" 请输入初始值x0=";cin>>x;cout<<endl;do{x0=x;temp=x0-1./pow(2,n)*pfun(x0)/pdfun(x0);if(fabs(pfun(temp))>=fabs(pfun(x0))&&n<maxn){n=n+1;temp=x0-1./pow(2,n)*pfun(x0)/pdfun(x0);}else if(fabs(pfun(temp))>=fabs(pfun(x0))){cout<<" 牛顿下山法失败!"<<endl;exit(1);}x=temp;if(n==0)cout<<" 第"<<k<<"步迭代的结果为:x("<<k<<")="<<x<<endl; else{cout<<" 第"<<k<<"步迭代的结果为:x("<<k<<")="<<x;cout<<" 下山因子为:r=1/2^"<<n<<endl;}n=0;++k;}while(fabs(x-x0)>err&&k<maxflag);if(k>=maxflag)cout<<endl<<" 牛顿下山法失败!迭代次数为k="<<k<<endl; else{cout<<endl<<" 牛顿下山法成功!迭代次数为k="<<k-1<<endl; cout<<" 牛顿下山法结果:近似根为root="<<x<<endl;牛顿法求根号7的值代码如下#include<iostream>#include<math.h>using namespace std;double f(double x);double df(double x);void main(){int maxflag,k=1,n=0;double x0,x,r;cout<<"请输入最大迭代次数:maxflag=";cin>>maxflag;cout<<" 请输入精度要求:r=";cin>>r;cout<<" 请输入初始值x0=";cin>>x;cout<<endl;if(df(x)==0)cout<<"牛顿迭代法失败"<<endl;elsewhile(k<maxflag){x=x0-1.0*f(x0)/df(x0);if(x-x0<r) break;cout<<x<<endl;x0=x;k=k+1;}cout<<"函数值为:"<<x<<endl;}double f(double x){return (x*x-7);}double df(double x){return (2*x);}3.3运行结果二分法运行结果直接迭代法运行结果爱特金方程运行结果牛顿下山法运行结果3.4牛顿法求根号7运行结果3.5运行结果分析由迭代次数k=4可知牛顿下山法的收敛速度快。