一、实验目的
(1)学会二分法、牛顿法、弦截法三种方程求根的编程与应用。
(2)掌握方程求根的最基本、常用的运算方法和理论。
(3)掌握用图形方式来演示三种算法的方程求解,并体会它们各自不同的特点及收敛速率。
二、实验内容
求方程f(x)=x-2 sin(x)=0的非零根,按适当的比例在屏幕上画出f(x)的函数曲线以及根在x轴上的逼近过程。
三、算法设计
3.1 整体流程
。。。。
3.2 二分法
。。。。
3.3 牛顿法
1.设定最大迭代次数,以防止可能的无限循环;
2.初始化根值为x0,并将根值添加到x_steps数组中;
3.进行最多max_iter次迭代:
3.1计算f在当前根值处的值f_val和df在当前根值处的值df_val;
3.2如果df_val的绝对值小于eps(一个很小的正数),则抛出错误,因为无法继续迭代;
3.3更新根值root为当前根值减去f_val除以df_val;
3.4将新的根值添加到x_steps数组中;
3.5如果f_val的绝对值小于precision,则停止迭代。
4.返回求解得到的根root和每次迭代过程中的根的值x_steps。
3.4 弦截法
。。。。
四、运行结果及分析
调用上述三个函数,成功在图形界面窗口上绘制出来这三种算法的方程求根过程如下图:
图 8方程求根
分析:。。。。。。。。。。。
五、小结
。。。。