计算的误差.doc
上传人:sy****28 上传时间:2024-09-12 格式:DOC 页数:7 大小:62KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

计算的误差.doc

计算的误差.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第0章計算的誤差本章旨在探討當我們執行算數計算時,近似值取代真實值所產生的誤差之影響,及如何避免誤差之擴展.本章中沒有用到Matlab的m-file,往後如果有需要,則將必要的m-file之檔案夾加入搜尋路徑中,例如:path('d:\numerical',path)註:如果你有安裝MatlabNotebook要執行下列inputcells(綠色指令敘述)之前必須先執行上面的cell–[path(…)]藍色的內容是Matlab[outputcells]本章同時利用"ExtendedSymbolicToolBox(Maple)"的指令或函數例題1:Findtherootsofequationx2–x–1/3=0.首先我們利用函數solve得到真實解rt=solve('x^2-x-1/3')rt=[1/2+1/6*21^(1/2)][1/2-1/6*21^(1/2)]再利用digits函數得到10個有效數位之近似根,digits(10)x1=vpa(rt(1))%vpa()說明於後x2=vpa(rt(2))x1=1.263762616x2=-.2637626160註:函數vpa是variable-precisionarithmetic的簡稱,用來配合固定有效數位--digits()之計算.如果將1/3取代為0.3333,則兩近似根為roots([1-1-0.3333])ans=1.2637-0.2637兩近似根維持4位有效數位.註:Matlab內定16位有效數位,顯示時一般格式只有5個數字,Maple內定32位有效數位.例題2:Findtherootsofequation1.002x2-11.01x+0.01265=0.其近似根為:formatlong;roots([1.002-11.010.01265])formatshortans=10.986874876435900.00114907565991假設我們所有的每個計算都維持4位有效數位,如同一部4-digit的計算機,下面套用二次方程式根的公式:觀察每個步驟之數據:a=1.002;b=-11.01;c=0.01265;digits(4)a2=vpa(2*a)bb=vpa(b^2)ac4=vpa(4*a*c)dif=vpa(bb-ac4)sqr=vpa(sqrt(dif))x1=vpa((-b+sqr)/a2)x2=vpa((-b-sqr)/a2)a2=2.004bb=121.2ac4=.5070e-1dif=121.1sqr=11.00x1=10.98x2=.4990e-2上面數據顯示近似根x1蠻好,但是x2誤差蠻大的.因為-b-sqrt(b2-4ac)兩個相近的數值相減刪除重要的有效數字,稱為lossofsignificantdigits.下面兩個方法改善誤差的影響.(I)將x2改採另一公式計算:c2=vpa(2*c);x2=vpa(-c2/(b-sqr))x2=.1149e-2這個數值明顯較佳.因為b-sqrt(b2-4ac)保留重要的有效數字(II)採用較多的有效數位(16位)a=1.002;b=-11.01;c=0.01265;digits(16)a2=vpa(2*a)bb=vpa(b^2)ac4=vpa(4*a*c)dif=vpa(bb-ac4)sqr=vpa(sqrt(dif))x1=vpa((-b+sqr)/a2)x2=vpa((-b-sqr)/a2)a2=2.004000000000000bb=121.2201000000000ac4=.5070120000000000e-1dif=121.1693988000000sqr=11.00769725237754x1=10.98687487643590x2=.1149075659910180e-2上面資料顯示採用16數位計算,其結果亦較佳.例題3:Taylorseriesexpansionfore-x:我們採用4-digit的計算,利用下列兩個公式得e-5之近似值.(a)(b)e5之倒數symsxg=exp(-x);ta=taylor(g,10)%泰勒展開式前十項digits(4)ansa=vpa(subs(ta,x,5))tb=taylor(exp(x),10)ansb=vpa(1/subs(tb,x,5))ta=1-x+1/2*x^2-1/6*x^3+1/24*x^4-1/120*x^5+1/720*x^6-1/5040*x^7+1/