《matlab求代數(shù)方程的近似艮實(shí)驗(yàn)報(bào)告三》由會(huì)員分享,可在線閱讀,更多相關(guān)《matlab求代數(shù)方程的近似艮實(shí)驗(yàn)報(bào)告三(10頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、matlab與數(shù)學(xué)實(shí)驗(yàn)實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)序號(hào): 實(shí)驗(yàn)三 日期: 2015 年 5 月 22 日班級(jí)132132002姓名 彭婉婷學(xué)號(hào) 1321320057實(shí)驗(yàn)名稱 求代數(shù)方程的近似根(解)問題背景描述本實(shí)驗(yàn)介紹一些求方程實(shí)根的近似值的有效方法,要求在使用這些方法前先確定求根區(qū)間,或給出某根的近似值在實(shí)際問題抽象出的數(shù)學(xué)模型中,可以根據(jù)物理背景確定;也可根據(jù)的草圖等方法確定,還可用對(duì)分法、迭代法以及牛頓切線法大致確定根的分布情況實(shí)驗(yàn)?zāi)康?. 了解對(duì)分法、迭代法、牛頓切線法求方程近似根的基本過程;2. 求代數(shù)方程(組)的解實(shí)驗(yàn)原理與數(shù)學(xué)模型7.11.0(R2010b)對(duì)分法思想:將區(qū)域不斷對(duì)分,判斷根在
2、某個(gè)分段內(nèi),再對(duì)該段對(duì)分,依此類推,直到滿足精度為止對(duì)分法適用于求有根區(qū)間內(nèi)的單實(shí)根或奇重實(shí)根迭代法的基本思想:由方程構(gòu)造一個(gè)等價(jià)方程從某個(gè)近似根出發(fā),令,可得序列,這種方法稱為迭代法松弛法:若與同是的近似值,則是兩個(gè)近似值的加權(quán)平均,其中稱為權(quán)重,現(xiàn)通過確定看能否得到加速Altken方法:松弛法要先計(jì)算,在使用中有時(shí)不方便,為此發(fā)展出以下的 Altken 公式:,是它的根,是其近似根牛頓法的基本思想:是非線性方程,一般較難解決,多采用線性化方法附加題Eye()Diag(ones(7,1),1)主要內(nèi)容(要點(diǎn)) 4分別用對(duì)分法、普通迭代法、松弛迭代法、Altken 迭代法、牛頓切法線等5種方法
3、,求方程 的正的近似根,(建議取 )時(shí)間許可的話,可進(jìn)一步考慮 的情況)附加:思考:若 ,或是類似的但階數(shù)更大的稀疏方陣,則應(yīng)如何得到?實(shí)驗(yàn)過程記錄(含基本步驟、主要程序清單及異常情況記錄等)4、分別用對(duì)分法、普通迭代法、松弛迭代法、Altken 迭代法、牛頓切法線等5種方法,求方程 的正的近似根,(建議取 )一、對(duì)分法圖像程序:f=sin(x)-0.5*x; g=0; ezplot(f, -4, 4); hold on; ezplot(g, -4, 4); %目的是畫出直線 y=0,即 x 軸grid on; axis(-4 4 -5 5); hold off 求解程序:clearsyms
4、x fx;a=1.5;b=2;fx=sin(x)-0.5*x;x=(a+b)/2;k=0;ffx=subs(fx,x,x);if ffx=0; disp(the root is:,num2str(x)else disp(k ak bk f(xk)while abs(ffx)0.0001 & ab; disp(num2str(k), ,num2str(a), ,num2str(b), ,num2str(ffx) fa=subs(fx,x,a);ffx=subs(fx,x,x); if fa*ffx0.0001; disp(num2str(k), ,num2str(x), ,num2str(ffx
5、) x=subs(gx,x,x);ffx=subs(fx,x,x);k=k+1;enddisp(num2str(k), ,num2str(x), ,num2str(ffx)答案:k x f(x)0 1.9 -0.00369991 1.8926 0.00236642 1.8973 -0.00150753 1.8943 0.000962784 1.8962 -0.000613915 1.895 0.000391866 1.8958 -0.000249967 1.8953 0.000159518 1.8956 -0.000101769 1.8954 6.4935e-005三、松弛迭代法clearsy
6、ms fx gx x dgx;gx=2*sin(x);fx=sin(x)-0.5*x;dgx=diff(gx, x);x=1.9;k=0;ggx=subs(gx, x, x);ffx=subs(fx, x, x);dgxx=subs(dgx, x, x);disp(k x w)while abs(ffx)0.0001; w=1/(1-dgxx); disp(num2str(k), , num2str(x), , num2str(w) x=(1-w)*x+w*ggx;k=k+1; ggx=subs(gx, x, x);ffx=subs(fx, x, x);dgxx=subs(dgx, x, x)
7、;end disp(num2str(k), , num2str(x), , num2str(w)答案k x w0 1.9 0.607321 1.8955 0.60732四、Altken 迭代法clearsyms x fx gx;gx=2*sin(x);fx=sin(x)-0.5*x;disp(k x x1 x2)x=1.9;k=0;ffx=subs(fx, x, x);while abs(ffx)0.0001;u=subs(gx, x, x);v=subs(gx, x, u); disp(num2str(k), , num2str(x), , num2str(u), , num2str(v)x
8、=v-(v-u)2/(v-2*u+x);k=k+1;ffx=subs(fx, x, x);enddisp(num2str(k), , num2str(x), , num2str(u), , num2str(v)答案k x x1 x20 1.9 1.8926 1.89731 1.8955 1.8926 1.8973五、牛頓切法clearsyms x fx gx;fx=sin(x)-0.5*x;gx=diff(fx,x);x1=1.9;k=0;disp(k x1)fx1=subs(fx,x,x1);gx1=subs(gx,x,x1);while abs(fx1)0.0001; disp(num2s
9、tr(k), ,num2str(x1) x1=x1-fx1/gx1;k=k+1; fx1=subs(fx,x,x1); gx1=subs(gx,x,x1);enddisp(num2str(k), ,num2str(x1)答案k x10 1.91 1.8955附加:思考:若 ,或是類似的但階數(shù)更大的稀疏方陣,則應(yīng)如何得到?clearA=eye(7);a1=diag(ones(7,1),1);a2=rot90(a1,2);a3=2*eye(8);m=a1+a2+a3;disp(m)答案2 1 0 0 0 0 0 01 2 1 0 0 0 0 00 1 2 1 0 0 0 00 0 1 2 1 0
10、0 00 0 0 1 2 1 0 00 0 0 0 1 2 1 00 0 0 0 0 1 2 10 0 0 0 0 0 1 2實(shí)驗(yàn)結(jié)果報(bào)告與實(shí)驗(yàn)總結(jié)實(shí)驗(yàn)結(jié)果:一、對(duì)分法1.89451.8984 迭代步數(shù):9二、普通迭代法1.8954 迭代步數(shù):9三、松弛迭代法1.8955 迭代步數(shù):2四、Altken 迭代法1.8955 1.8926 迭代步數(shù):2五、牛頓切法1.8955 迭代步數(shù):2實(shí)驗(yàn)總結(jié):在調(diào)試和運(yùn)行的過程中,取不同的初值和方程表達(dá)式,得到的運(yùn)算結(jié)果與迭代次數(shù)都不相同,所取得區(qū)間越精確,迭代次數(shù)就越少。所以我們可以先通過畫出函數(shù)的圖像來大致判別根所在的區(qū)間,這樣能夠比較快速準(zhǔn)確地找出近似根。附加題除了用eyes和diag、rot90的矩陣生成函數(shù)外,直接相加即可生成。教師評(píng)語實(shí)驗(yàn)成績(jī)