數值分析上機實驗報告六

2022-05-09 06:54:02 字數 2330 閱讀 2896

題目: 方程求根

摘要:數學、物理中的許多問題常常歸結為求解函式方程,這裡可以是代數多項式,也可以是超越函式。方程的解稱為它的根,或稱為的零點。

然而非線性方程的解析解通常是很難給出,因此線性方程的數值解法就尤為重要。本實驗重點介紹幾種常見的較為方便實用的求解方法。

前言:(目的和意義)

通過對二分法與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...