一元三次方程解法 編程求解非線性方程組,分別用不動點迭代法和牛頓法(要求輸出迭代次數(shù))C/C /MATLAB任意?
編程求解非線性方程組,分別用不動點迭代法和牛頓法(要求輸出迭代次數(shù))C/C /MATLAB任意?函數(shù)X=Newton(fname,dfname,x0,e,n)%目的:求解非線性方程f(X)=0%fn
編程求解非線性方程組,分別用不動點迭代法和牛頓法(要求輸出迭代次數(shù))C/C /MATLAB任意?
函數(shù)X=Newton(fname,dfname,x0,e,n)%目的:求解非線性方程f(X)=0%fname和dfname的牛頓迭代法分別表示f(X)的m函數(shù)句柄或嵌入函數(shù)表達(dá)式,其導(dǎo)數(shù)函數(shù)%x0為迭代初值,e為精度(默認(rèn)值1e-7)%X為返回數(shù)值解并顯示計算過程,設(shè)置迭代次數(shù)n的上限以防發(fā)散(默認(rèn)值500)%。示例:求解方程ln(x)Sin(x))=0%在MATLAB窗口中輸入:Newton(@(x)log(x Sin(x)),@(x)(1 cos(x))/(x Sin(x)),0.1)if nargine&;AMPK
這里的Newton方法是找到方程f(x)=0根的方法。利用迭代法,通過一定的迭代公式得到x(K1)=g(XK)。如果我們記得EK=| xk-x*|,其中x*是F(x)=0的根。EK是迭代序列{XK}和真解之間的距離。EK=0表示已獲得真解。證明了如果f(x)滿足一定的條件,則{XK}收斂到x*,即EK是關(guān)于e(k-1)^2的,這是一種快速收斂的方法。因為你認(rèn)為,例如,如果E1=0.1,那么E2約為0.01,E3約為10^(-4),E4約為10^(-8),E5約為10^(-16)。只需幾次迭代就可得到有效位數(shù)約為16位的近似解,收斂速度很快。當(dāng)然,很難做到這么快,但牛頓法一般被認(rèn)為是求解非線性方程根的一種非常有效的方法。