《實驗三求代數(shù)方程的近似根》由會員分享,可在線閱讀,更多相關(guān)《實驗三求代數(shù)方程的近似根(9頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、實驗三 求代數(shù)方程的近似根(解)
一、問題背景和實驗目的
二、 相關(guān)函數(shù)(命令)及簡介
三、 實驗內(nèi)容
四、自己動手
一、問題背景和實驗目的
求代數(shù)方程的根是最常見的數(shù)學問題之一(這里稱為代數(shù)方程,主要是想和后面的微分方程區(qū)別開.為簡明起見,在本實驗的以下敘述中,把代數(shù)方程簡稱為方程),當是一次多項式時,稱為線性方程,否則稱之為非線性方程.
當是非線性方程時,由于的多樣性,尚無一般的解析解法可使用,但如果對任意的精度要求,能求出方程的近似根,則可以認為求根的計算問題已經(jīng)解決,至少能滿足實際要求.
本實驗介紹一些求方程實根的近似值的有效方法,要求在使用這些方法前先
2、確定求根區(qū)間,或給出某根的近似值.在實際問題抽象出的數(shù)學模型中,可以根據(jù)物理背景確定;也可根據(jù)的草圖等方法確定,還可用對分法、迭代法以及牛頓切線法大致確定根的分布情況.
通過本實驗希望你能:
1. 了解對分法、迭代法、牛頓切線法求方程近似根的基本過程;
2. 求代數(shù)方程(組)的解.
二、 相關(guān)函數(shù)(命令)及簡介
1.a(chǎn)bs( ):求絕對值函數(shù).
2.diff(f):對獨立變量求微分,f 為符號表達式.
diff(f, a):對變量a求微分,f 為符號表達式.
diff(f, a, n):對變量 a 求 n 次微分,f 為符號表達式.
例如:
syms x t
diff
3、(sin(x^2)*t^6, t, 6)
ans=
720*sin(x^2)
3.roots([c(1), c(2), …, c(n+1)]):求解多項式的所有根.例如:
求解:.
p = [1 -6 -72 -27];
r = roots(p)
r =
12.1229
-5.7345
-0.3884
4.solve(表達式):求表達式的解.
solve(2*sin(x)=1)
ans =
1/6*pi
5.linsolve(A, b):求線性方程組 A*x=b 的解.
例如:
A= [9 0; -1 8]; b=[1; 2];
linso
4、lve(A, b)
ans=
[ 1/9]
[19/72]
6.fzero(fun, x0):在x0附近求fun 的解.其中fun為一個定義的函數(shù),用“@函數(shù)名”方式進行調(diào)用.
例如:
fzero(@sin, 3)
ans=
3.1416
7.subs(f, x , a):將 a 的值賦給符號表達式 f 中的 x,并計算出值.
例如:
subs(x^2 , x , 2)
ans = 4
三、 實驗內(nèi)容
首先,我們介紹幾種與求根有關(guān)的方法:
1.對分法
對分法思想:將區(qū)域不斷對分,判斷根在某個分段內(nèi),再對該段對分,依此類推,直到滿足精度為止.對分法適用
5、于求有根區(qū)間內(nèi)的單實根或奇重實根.
設在上連續(xù),,即 ,或,.則根據(jù)連續(xù)函數(shù)的介值定理,在內(nèi)至少存在一點 ,使.
下面的方法可以求出該根:
(1) 令,計算;
(2) 若,則是的根,停止計算,輸出結(jié)果.
若 ,則令,,若,則令,;.
……,有、以及相應的.
(3) 若 (為預先給定的精度要求),退出計算,輸出結(jié)果;
反之,返回(1),重復(1),(2),(3).
以上方法可得到每次縮小一半的區(qū)間序列,在中含有方程的根.
當區(qū)間長很小時,取其中點為根的近似值,顯然有
以上公式可用于估計對分次數(shù).
分析以上過程不難知道,對分法的收斂速度與公比為的等比級數(shù)相同.由于,可知
6、大約對分10次,近似根的精度可提高三位小數(shù).對分法的收斂速度較慢,它常用來試探實根的分布區(qū)間,或求根的近似值.
2. 迭代法
1) 迭代法的基本思想:
由方程構(gòu)造一個等價方程
從某個近似根出發(fā),令
,
可得序列,這種方法稱為迭代法.
若 收斂,即
,
只要連續(xù),有
即
可知,的極限是的根,也就是的根.
當然,若發(fā)散,迭代法就失?。?
以下給出迭代過程收斂的一些判別方法:
定義:如果根的某個鄰域中,使對任意的,迭代過程,收斂,則稱迭代過程在附近局部收斂.
定理1: 設,在的某個鄰域內(nèi)連續(xù),并且,,則對任何,由迭代決定的序列收斂于.
定理2:條件同定理
7、 1,則
定理3:已知方程,且
(1) 對任意的,有.
(2) 對任意的,有,則對任意的,迭代生成的序列收斂于的根,且 .
以上給出的收斂定理中的條件要嚴格驗證都較困難,實用時常用以下不嚴格的標準:
當根區(qū)間較小,且對某一,明顯小于1時,則迭代收斂 (參見附錄3).
2) 迭代法的加速:
a) 松弛法:
若與同是的近似值,則是兩個近似值的加權(quán)平均,其中稱為權(quán)重,現(xiàn)通過確定看能否得到加速.
迭代方程是:
其中,令,試確定:
當時,有,即當,時,
可望獲得較好的加速效果,于是有松弛法:,
松弛法的加速效果是明顯的 (見附錄4),甚至不收斂的迭代函數(shù)經(jīng)加
8、速后也能獲得收斂.
b) Altken方法:
松弛法要先計算,在使用中有時不方便,為此發(fā)展出以下的 Altken 公式:
,是它的根,是其近似根.
設,,因為
,
用差商近似代替,有
,
解出,得
由此得出公式
;
;
,
這就是Altken 公式,它的加速效果也是十分明顯的,它同樣可使不收斂的迭代格式獲得收斂(見附錄5).
3. 牛頓(Newton)法(牛頓切線法)
1) 牛頓法的基本思想:
是非線性方程,一般較難解決,多采用線性化方法.
記:
是一次多項式,用作為的近似方程.
的解為
記為,一般地,記
即為牛頓法公式.
9、
2) 牛頓法的收斂速度:
對牛頓法,迭代形式為:
注意分子上的,所以當時,,牛頓法至少是二階收斂的,而在重根附近,牛頓法是線性收斂的.
牛頓法的缺點是:(1)對重根收斂很慢;(2)對初值要求較嚴,要求相當接近真值.
因此,常用其他方法確定初值,再用牛頓法提高精度.
4. 求方程根(解)的其它方法
(1) solve(x^3-3*x+1=0)
(2) roots([1 0 -3 1])
(3) fzero(x^3-3*x+1, -2)
(4) fzero(x^3-3*x+1, 0.5)
(5) fzero(x^3-3*x+1, 1.4)
(6) linsolv
10、e([1, 2, 3; 4, 5, 6; 7, 8, 0], [1, 2, 3])
體會一下,(2)(5) 用了上述 13 中的哪一種方法?
以下是本實驗中的幾個具體的實驗,詳細的程序清單參見附錄.
具體實驗1:對分法
先作圖觀察方程:的實根的分布區(qū)間,再利用對分法在這些區(qū)間上分別求出根的近似值.
輸入以下命令,可得的圖象:
f=x^3-3*x+1;
g=0;
ezplot(f, [-4, 4]);
hold on;
ezplot(g, [-4, 4]); %目的是畫出直線 y=0,即 x 軸
grid on;
axis([-4 4 -5 5]);
11、
hold off
請?zhí)顚懴卤恚?
實根的分布區(qū)間
該區(qū)間上根的近似值
在某區(qū)間上求根的近似值的對分法程序參見附錄1.
具體實驗2:普通迭代法
采用迭代過程:求方程在 0.5 附近的根,精確到第 4 位小數(shù).
構(gòu)造等價方程:
用迭代公式: ,
用 Matlab 編寫的程序參見附錄2.
請利用上述程序填寫下表:
分析:將附錄2第4行中的分別改為以及,問運行的結(jié)果是什么?你能分析得到其中的原因嗎?看看下面的“具體實驗3”是想向你表達一個什么意思.
用
12、Matlab 編寫的程序參見附錄3.
具體實驗3:收斂/發(fā)散判斷
設方程的三個根近似地取,和,
這些近似值可以用上面的對分法求得.
迭代形式一:
收斂 (很可能收斂,下同)
不收斂 (很可能不收斂,下同)
不收斂
迭代形式二:
收斂
不收斂
不收斂
迭代形式三:
不收斂
收斂
收斂
具體實驗4:迭代法的加速1——松弛迭代法
,,
迭代公式為
程序參見附錄4.
具體實驗5:迭代法的加速2——Altken迭代法
迭代公式為:
,
,
程序參見附錄5.
具體實驗6:牛頓法
用牛頓法計算方程
13、在-2到2之間的三個根.
提示:,迭代公式:
程序參見附錄6 (牛頓法程序).
具體實驗7:其他方法
求下列代數(shù)方程(組)的解:
(1)
命令:solve(x^5-x+1=0)
(2)
命令:[x, y]=solve(2*x+3*y=0, 4*x^2+3*y=1)
(3) 求線性方程組的解,已知,
命令:
for i=1:5
for j=1:5
m(i, j)=i+j-1;
end
end
m(5, 5)=0;
b=[1:5]
linsolve(m, b)
思考:若 ,或是類似的但階數(shù)更大的稀疏方陣,則應如何得到?
四、自己動手
1.對分法可以用來求偶重根附近的近似解嗎? 為什么?
2.對照具體實驗2、4、5,你可以得出什么結(jié)論?
3.選擇適當?shù)牡^程,分別使用:(1)普通迭代法;(2)與之相應的松弛迭代法和 Altken 迭代法.求解方程 在 1.4 附近的根,精確到4位小數(shù),請注意迭代次數(shù)的變化.
4.分別用對分法、普通迭代法、松弛迭代法、Altken 迭代法、牛頓切法線等5種方法,求方程 的正的近似根,.(建議取 .時間許可的話,可進一步考慮 的情況.)
上一頁回目錄 下一頁