matlab中牛顿法程序我手里有两个牛顿迭代法的程序,但是两种程序计算出来的数值有误差,而我又对数值的要求很高,我是初学牛顿法,所以不知道应该采用哪个.请大家帮我看看!最好能解释一下

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/04 19:17:03
matlab中牛顿法程序我手里有两个牛顿迭代法的程序,但是两种程序计算出来的数值有误差,而我又对数值的要求很高,我是初学牛顿法,所以不知道应该采用哪个.请大家帮我看看!最好能解释一下

matlab中牛顿法程序我手里有两个牛顿迭代法的程序,但是两种程序计算出来的数值有误差,而我又对数值的要求很高,我是初学牛顿法,所以不知道应该采用哪个.请大家帮我看看!最好能解释一下
matlab中牛顿法程序
我手里有两个牛顿迭代法的程序,但是两种程序计算出来的数值有误差,而我又对数值的要求很高,我是初学牛顿法,所以不知道应该采用哪个.请大家帮我看看!最好能解释一下为什么采用这个,
第一种:
function x=nanewton(fname,dfname,x0,e,N)
if nargin

matlab中牛顿法程序我手里有两个牛顿迭代法的程序,但是两种程序计算出来的数值有误差,而我又对数值的要求很高,我是初学牛顿法,所以不知道应该采用哪个.请大家帮我看看!最好能解释一下
采用第一个.
首先你的两个代码的计算过程和方法以及步骤是一致的.
只不过第二个将k==N放在循环内部判断是没有必要的.
放在while外面,可以节省点计算量.
如果你要求结果精度高一些的话,你调用:
x=nanewton1(fname,dfname,x0,e,N)
时e要小一些,比如说取1e-6这样.
另外:
if nargin