![第1章作業(yè)完整版本_第1頁](http://file4.renrendoc.com/view11/M03/05/05/wKhkGWX3sI-AWgxJAAETpcSbWQc229.jpg)
![第1章作業(yè)完整版本_第2頁](http://file4.renrendoc.com/view11/M03/05/05/wKhkGWX3sI-AWgxJAAETpcSbWQc2292.jpg)
![第1章作業(yè)完整版本_第3頁](http://file4.renrendoc.com/view11/M03/05/05/wKhkGWX3sI-AWgxJAAETpcSbWQc2293.jpg)
![第1章作業(yè)完整版本_第4頁](http://file4.renrendoc.com/view11/M03/05/05/wKhkGWX3sI-AWgxJAAETpcSbWQc2294.jpg)
![第1章作業(yè)完整版本_第5頁](http://file4.renrendoc.com/view11/M03/05/05/wKhkGWX3sI-AWgxJAAETpcSbWQc2295.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第一題問題敘述:構(gòu)造算法并編程序精確計(jì)算二次方程的根●設(shè)a≠0,b2●包括b2≈b問題分析:對于一般情況,可以直接使用求根公式x=-bclearcleara=input('a=');b=input('b=');c=input('c=');x1=-b/2*a+1/2*a*sqrt(b*b-4*a*c)x2=-b/2*a+1/2*a*sqrt(b*b-4*a*c)但是當(dāng)b2?4ac時,b2≈解決方法:(1)方法1:使用雙精度計(jì)算(2)方法2:變換求根公式當(dāng)b>0時,x當(dāng)b<0時,x這樣可以很好地避免出現(xiàn)減性抵銷現(xiàn)象實(shí)例分析:以a=c=1,b=±1000000.000001為例(1)方法1:使用雙精度計(jì)算(與單精度作對比)%calculateusingdoubleprecision%calculateusingdoubleprecision%forthepurposesofcomparison,alsousesingletocalculatecleara=input('a=');b=input('b=');c=input('c=');%a,b,cisthecoefficientofequationax^2+bx+c=0delta=b*b-4*a*c;%first,usingdoubled1=(-b+sqrt(delta))/2/a;d2=(-b-sqrt(delta))/2/a;d1=vpa(d1,12),d2=vpa(d2,12)%than,usingsingledelta=single(delta);a=single(a);b=single(b);c=single(c);s1=single((-b+sqrt(delta))/2/a);s2=single((-b-sqrt(delta))/2/a);s1=vpa(s1,12),s2=vpa(s2,12)對于不同的系數(shù),計(jì)算結(jié)果如下:方程系數(shù)單精度雙精度abcxxxx175-0.807417631-6.192582130-0.807417596-6.19258240311000010.0-10000.0-0.00010000-9999.999911000000.00000110.0-1000000.01.0000076e-6-1000000.01-1000000.00000110.01000000.01.0000076e-61000000.0結(jié)論:顯然,在一般情況下,單精度還能保持一定準(zhǔn)確度;但是當(dāng)a=1,b=10000,c=1時,減性抵銷現(xiàn)象很明顯,單精度下的x1計(jì)算結(jié)果為0,在b=1000000.000001(2)方法2:變換求根公式當(dāng)b>0時,x當(dāng)b<0時,x%calculateusingdouble%calculateusingdouble%forthepurposesofcomparison,alsousesingletocalculatecleara=input('a=');b=input('b=');c=input('c=');%a,b,cisthecoefficientofequationax^2+bx+c=0delta=b*b-4*a*c;%first,usingdoubleifb>0d1=-2*c/(b+sqrt(delta));%usingnewformulad2=(-b-sqrt(delta))/2/a;elsed1=-2*c/(b-sqrt(delta));%usingnewformulad2=(-b+sqrt(delta))/2/a;endd1=vpa(d1,12),d2=vpa(d2,12)%than,usingsingledelta=single(delta);a=single(a);b=single(b);c=single(c);ifb>0s1=single(-2*c/(b+sqrt(delta)));%usingnewformulas2=single((-b-sqrt(delta))/2/a);elses1=single(-2*c/(b-sqrt(delta)));%usingnewformulas2=single((-b+sqrt(delta))/2/a);ends1=vpa(s1,12),s2=vpa(s2,12)計(jì)算結(jié)果如下:方程系數(shù)單精度雙精度abcxxxx175-0.80741763-6.19258213-0.80741759-6.1925824011000019.99999975e-5-10000.0-0.00010000-9999.999911000000.0000011-9.99999975e-7-1000000.0-0.000001-1000000.01-1000000.00000119.99999975e-71000000.00.0000011000000.0結(jié)論: 在普通情況下,變換公式的提升效果不明顯。但是當(dāng)b2?4ac時,變換公式能夠有效地避免減性抵銷,在單精度的計(jì)算結(jié)果可以看出,即使當(dāng)b=1000000.000001時,第二題問題敘述:正弦函數(shù)的無窮級數(shù)展開為sin(1)分別以單精度和雙精度數(shù)據(jù)類型,計(jì)算x=0.5時近似值,要求計(jì)算結(jié)果具有4位有效數(shù)字;(2)如果采用單精度數(shù)據(jù)類型要求計(jì)算結(jié)果達(dá)到機(jī)器精度,此時結(jié)果如何?(測試機(jī)器精度,滿足1+問題分析:本題應(yīng)使用迭代法求解。當(dāng)前迭代結(jié)果對真值的誤差為?當(dāng)前迭代結(jié)果的誤差為?為了使計(jì)算結(jié)果達(dá)到一定準(zhǔn)確度,應(yīng)先設(shè)定一個容限?s,當(dāng)?a<??
問題解答:(1)先計(jì)算雙精度數(shù)據(jù)類型%usingiterativemethodtocalculate%usingiterativemethodtocalculatesin(0.5),doubleprecisioncleari=0;x=0.5;es=0.0005;ea=1;%initializetheerrorofcurrentiterationresultsitem=(-1)^i*x^(2*i+1)/factorial(2*i+1);y=item%yistheestimateofsin(0.5)er=(sin(0.5)-y)/sin(0.5)%Relativeerroroftruevaluewhile(abs(ea)>es)i=i+1;item=(-1)^i*x^(2*i+1)/factorial(2*i+1);y=y+itemea=item/yer=(sin(0.5)-y)/sin(0.5)%Relativeerroroftruevalueenddisp('therealvalueis:sin(0.5)=');disp(sin(0.5));計(jì)算結(jié)果如下表所示:(注:真值為0.479425538604203)迭代計(jì)算值當(dāng)前迭代結(jié)果誤差?對真值相對誤差?0.5000000000/-0.04291480.4791666666-0.043478265.3996276e-40.47942708335.4318305e-4-3.2220418e-60.4794255332-3.233243e-61.120106e-8
下面計(jì)算單精度數(shù)據(jù)類型:%usingiterativemethodtocalculatesin(0.5)%usingiterativemethodtocalculatesin(0.5),singleprecisioncleari=single(0);x=single(0.5);es=single(0.0005);ea=single(1);%initializetheerrorofcurrentiterationresultsitem=single((-1)^i*x^(2*i+1)/factorial(2*i+1));y=single(item)%yistheestimateofsin(0.5)er=(sin(0.5)-y)/sin(0.5)%Relativeerroroftruevaluewhile(single(abs(ea))>es)i=i+1;item=single((-1)^i*x^(2*i+1)/factorial(2*i+1));y=single(y+item)ea=single(item/y)er=(sin(0.5)-y)/sin(0.5)%Relativeerroroftruevalueenddisp('therealvalueis:sin(0.5)=');disp(sin(0.5));計(jì)算結(jié)果如下表所示:(注:真值為0.479425538604203)迭代計(jì)算值當(dāng)前迭代結(jié)果誤差?對真值相對誤差?0.5000000/-0.04291480.4791667-0.04347835.3998345e-040.47942715.4318312e-04-3.1930326e-060.4794255-3.2332430e-063.9420897e-08結(jié)論: 可以看出,無論是單精度還是雙精度,計(jì)算結(jié)果都有很高的精確度。實(shí)際上,兩種計(jì)算精度都在第3次迭代就已經(jīng)達(dá)到了4位有效數(shù)字的要求,可見迭代法在該問題有很高的效率。注:本題的求和級數(shù)是正負(fù)交替的級數(shù),在求和過程中,如果某一項(xiàng)的值大于和值本身時,就會出現(xiàn)拖尾效應(yīng),會抵銷大量的有效數(shù)字。在本題中,由于sin(0.5)的值較大,而且x=0.5較小,所以級數(shù)項(xiàng)衰減很快,不會出現(xiàn)拖尾效應(yīng)。對于可能出現(xiàn)此種效應(yīng)的情況,可以利用正弦函數(shù)的周期性,將x變換到合適的區(qū)間,從而避免出現(xiàn)級數(shù)項(xiàng)過大的情況。%amachineprecisiontestclearepsilon=single(1);while(single(epsilon+1)>single(1))%amachineprecisiontestclearepsilon=single(1);while(single(epsilon+1)>single(1))epsilon=single(epsilon/2);endepsilon=single(epsilon*2)%theresultofmachineprecisioninthistesteps(single(1))%themachineprecisioncalculatedbybuilt-infunction測試結(jié)果是1.1920929e-07,與MATLAB內(nèi)置的eps函數(shù)的計(jì)算結(jié)果1.1920929e-07相同。在測試中發(fā)現(xiàn),對于不同的類型和不同的值,機(jī)器精度是不一樣的。例如double類型的1的機(jī)器精度是2.220446049250313e-16;double類型的2的機(jī)器精度是4.440892098500626e-16,而single類型的2的精度是2.3841858e-07。那么,上面這段代碼求的是single類型的1的機(jī)器精度,即與單精度浮點(diǎn)數(shù)1最相近的浮點(diǎn)數(shù)與1的差值。對于不同的數(shù)據(jù)類型和不同的值,機(jī)器精度也不一樣。題目中要求采用單精度數(shù)據(jù)類型,要求計(jì)算結(jié)果達(dá)到機(jī)器精度??梢岳斫鉃?,當(dāng)前計(jì)算值與前一計(jì)算值的差值要小于等于當(dāng)前計(jì)算值的機(jī)器精度。%usingiterativemethodtocalculate%usingiterativemethodtocalculatesin(0.5)formatlongcleari=single(0);x=single(0.5);item=single((-1)^i*x^(2*i+1)/factorial(2*i+1));y=single(item)%yistheestimateofsin(0.5)er=(sin(0.5)-y)/sin(0.5)%Relativeerroroftruevalueeps_y=single(y);%themachineprecisionofywhile(single(eps_y+y)>single(y))eps_y=single(eps_y/2);endeps_y=single(eps_y*2)%theinitialvalueoftheprecisionwhile(abs(single(item))>eps_y)i=i+1;item=single((-1)^i*x^(2*i+1)/factorial(2*i+1));y=single(y+item)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年海洋服務(wù)合作協(xié)議書
- 新型保安服務(wù)模式的探索與創(chuàng)新計(jì)劃
- 班級經(jīng)驗(yàn)分享會的開展計(jì)劃
- 培養(yǎng)學(xué)生判斷力與批判性思維計(jì)劃
- 增強(qiáng)圖書館開放日活動效果計(jì)劃
- 如何應(yīng)對財務(wù)恐懼癥計(jì)劃
- 經(jīng)理績效目標(biāo)規(guī)劃計(jì)劃
- 美術(shù)欣賞與文化傳播課程大綱計(jì)劃
- 幼兒心理健康關(guān)懷計(jì)劃
- 2025年藝術(shù)表演場館服務(wù)項(xiàng)目建議書
- 特種設(shè)備及重要設(shè)備安全管理制度
- DB3502T052-2019 家政服務(wù)規(guī)范 家庭搬家
- 《自主神經(jīng)系統(tǒng)》課件
- 2025集團(tuán)公司內(nèi)部借款合同范本
- 遼寧省名校聯(lián)盟2025屆高三上學(xué)期1月份聯(lián)合考試語文試題(含答案)
- 2025年山西地質(zhì)集團(tuán)社會招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2024-2025學(xué)年遼寧省沈陽市沈河區(qū)七年級(上)期末英語試卷(含答案)
- 前牙即刻種植的臨床應(yīng)用
- 2024-2025學(xué)年初中七年級上學(xué)期數(shù)學(xué)期末綜合卷(人教版)含答案
- 體育活動策劃與組織課件
- 公司違規(guī)違紀(jì)連帶處罰制度模版(2篇)
評論
0/150
提交評論