学院
理学院
专业班
信息10-2班
日期
2012-3-13
学号
10071228
姓名
王绍梅
成绩
实验题目
非线性方程求根: 算法设计与比较
指导老师
申淑谦
实验目的:
编写牛顿法和二分法的matlab程序,探讨这两种方法的计算效果
实验内容:
分别编写牛顿法和二分法的matlab程序
实验要求:
用上述两种方法计算函数x^3+4x^2-10=0。
在达到相同精度的前提下,比较其迭代次数等。
实验步骤
牛顿迭代法
function [x,i]=newtonmethod(x0,f,ep,Nmax)
% 牛顿法求非线性方程根
% x0是输入初始值, f是输入函数, 精度要求ep, Nmax为最大迭代次数
% x是输出迭代序列,i是迭代次数
二分法
function [x,k]=bisection(a,b,f,ep)
% 二分法解非线性方程
% 输入区间[a,b],函数f和误差ep, Nmax为最大二分次数
% x为输出近似根, k为二分次数
运行结果及分析
1.牛顿法选初始值1.5,二分法的含根区间为[1,2],分析二者的收敛速度,并选择自己喜欢的图表表示;
牛顿法的迭代速度要远远快于二分法
2. 对牛顿法选不同的初始值,分析初值的选取对牛顿法收敛速度的影响。
当x0=1.1时
当x0=2.1时
源程序
(见附件)。