題目: 方程求根
摘要:數學、物理中的許多問題常常歸結為求解函式方程,這裡可以是代數多項式,也可以是超越函式。方程的解稱為它的根,或稱為的零點。
然而非線性方程的解析解通常是很難給出,因此線性方程的數值解法就尤為重要。本實驗重點介紹幾種常見的較為方便實用的求解方法。
前言:(目的和意義)
通過對二分法與newton法、迭代法的學習,了解它們求方程的根的基本原理,並能使用。
數學原理:
newton法通常預先要給出乙個猜測初值x0,然後根據其迭代公式
產生逼近解x*的迭代數列,這就是newton法的思想。當x0接近x*時收斂很快,但是當x0選擇不好時,可能會發散,因此初值的選取很重要。
迭代法通常也要給出乙個猜測初值x0,然後根據其迭代公式
進行計算,當,則以替換繼續進行迭代;當時終止計算,取作為最終結果。
二分法的數學實質就是說對於給定的待求解的方程f(x),其在[a,b]上連續,f(a)f(b)<0,且f(x)在[a,b]內僅有乙個實根x*,取區間中點c,若,則c恰為其根,否則根據f(a)f(c)<0是否成立判斷根在區間[a,c]和[c,b]中的哪乙個,從而得出新區間,仍稱為[a,b]。重複執行計算,直至滿足精度為止。這就是二分法的計算思想。
程式設計:
1.用二分法求在區間(0,1)內的乙個根,直到近似根滿足精度時終止計算。
本實驗採用matlab的m檔案編寫,主程式如下
二分法程式:
fa=』1-a*sin(a)』;
fc=』1-c*sin(c)』;
b=1.5;
a=0;
r=1;
k=0;
while (r>5e-6) ;
c=(a+b)/2;
if eval(fa)*eval(fc)>0;
a=c;
else
b=c;
endr=b-a;
k=k+1;
endx=c
由於該題要求在區間(0,1)精度達到,然而實際並不能達到因此此題無解。
2. 應用newton法於方程,匯出求的迭代公式,並求的值。
匯出求的迭代公式為:
源程式如下:
newton法
f=input('請輸入需要求解函式》','s')
df=diff(f);
miu=2;
x0=input('input initial value x0>>');
k=0; max=100; r=eval(subs(f,'x0','x'))
while (abs(r)>1e-8)
x1=x0-miu*eval(subs(f,'x0','x'))/eval(subs(df,'x0','x'));
r=x1-x0;
x0=x1;
k=k+1;
if (eval(subs(f,'x0','x'))<1e-10);
break
endif k>max;
ss=input('maybe result is error,choose a new x0,y/n?>>','s');
if strcmp(ss,'y')
x0=input('input initial value x0>>');
k=0;
else
break
endendendk
x=x0
對於,取,迭代計算,得計算後的結果為:
故.3. 比較一下兩種求的根到三位小數所需的計算量:
a) 在區間(0,1)內的二分法;
b) 用迭代法,取初值。
將1題中的二分法源程式稍加改動既為本題二分法源程式,計算後的結果為:
用二分法要計算14次結果為0.0905456,
本題迭代法源程式如下:
迭代法:
f=input('請輸入需要求解函式》','s')
x=input('請輸入初值》','x')
x1=0;
k=0;
while r>5e-3
x1=eval(x);
r=x1-x;
if r<0
r=-r;
endx=x1;
k=k+1;
endk
x 計算後的結果為:
用迭代法要計算5次結果為0.0905264.
結論: newton法是一種行之有效的迭代法,在單根附近具有較高的收斂速度,應用newton法的關鍵在於選取合適的初值,初值不同,收斂的結果也可能不一樣,也就是結果可能不時預期需要得結果。二分法,只要能夠保證在給定的區間內有根,使能夠收斂的,當時收斂的速度和給定的區間有關,且總體上來說速度比較慢。
而迭代法在相同情況下其速度要比newton法和二分法快得多。
數值分析上機實驗報告
題目 緒論 非線性方程求解及誤差估計 摘要 非線性方程的解析解通常很難給出,因此線性方程的數值解法就尤為重要。本實驗採用兩種常見的求解方法二分法 newton法和改進的newton法。可以節省計算機的計算時間,還能減小不必要的誤差。前言 目的和意義 掌握二分法與newton法的基本原理 應用以及熟練...
《數值分析》上機實驗報告
1.用newton法求方程 x7 x4 14 0 在 0.1,1.9 中的近似根 初始近似值取為區間端點,迭代6次或誤差小於0.00001 1.1 理論依據 設函式在有限區間 a,b 上二階導數存在,且滿足條件 令故以1.9為起點 如此一次一次的迭代,逼近x的真實根。當前後兩個的差 時,就認為求出了...
數值分析實驗報告
實驗一題目一 已知函式表如下 試用三次lagrange插值多項式求x 0.5635時的函式值。解 lagrange插值法公式 程式框圖如下 本題中n 4 分析設計思想 設計思路如上面的流程圖所示,用我們學過的c語言程式設計實現。程式清單 include include include float l...