版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第一題問題敘述:構(gòu)造算法并編程序精確計算二次方程的根●設(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:使用雙精度計算(2)方法2:變換求根公式當(dāng)b>0時,x當(dāng)b<0時,x這樣可以很好地避免出現(xiàn)減性抵銷現(xiàn)象實例分析:以a=c=1,b=±1000000.000001為例(1)方法1:使用雙精度計算(與單精度作對比)%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ù),計算結(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計算結(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)計算結(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時,變換公式能夠有效地避免減性抵銷,在單精度的計算結(jié)果可以看出,即使當(dāng)b=1000000.000001時,第二題問題敘述:正弦函數(shù)的無窮級數(shù)展開為sin(1)分別以單精度和雙精度數(shù)據(jù)類型,計算x=0.5時近似值,要求計算結(jié)果具有4位有效數(shù)字;(2)如果采用單精度數(shù)據(jù)類型要求計算結(jié)果達到機器精度,此時結(jié)果如何?(測試機器精度,滿足1+問題分析:本題應(yīng)使用迭代法求解。當(dāng)前迭代結(jié)果對真值的誤差為?當(dāng)前迭代結(jié)果的誤差為?為了使計算結(jié)果達到一定準(zhǔn)確度,應(yīng)先設(shè)定一個容限?s,當(dāng)?a<??
問題解答:(1)先計算雙精度數(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));計算結(jié)果如下表所示:(注:真值為0.479425538604203)迭代計算值當(dāng)前迭代結(jié)果誤差?對真值相對誤差?0.5000000000/-0.04291480.4791666666-0.043478265.3996276e-40.47942708335.4318305e-4-3.2220418e-60.4794255332-3.233243e-61.120106e-8
下面計算單精度數(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));計算結(jié)果如下表所示:(注:真值為0.479425538604203)迭代計算值當(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é)論: 可以看出,無論是單精度還是雙精度,計算結(jié)果都有很高的精確度。實際上,兩種計算精度都在第3次迭代就已經(jīng)達到了4位有效數(shù)字的要求,可見迭代法在該問題有很高的效率。注:本題的求和級數(shù)是正負交替的級數(shù),在求和過程中,如果某一項的值大于和值本身時,就會出現(xiàn)拖尾效應(yīng),會抵銷大量的有效數(shù)字。在本題中,由于sin(0.5)的值較大,而且x=0.5較小,所以級數(shù)項衰減很快,不會出現(xiàn)拖尾效應(yīng)。對于可能出現(xiàn)此種效應(yīng)的情況,可以利用正弦函數(shù)的周期性,將x變換到合適的區(qū)間,從而避免出現(xiàn)級數(shù)項過大的情況。%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ù)的計算結(jié)果1.1920929e-07相同。在測試中發(fā)現(xiàn),對于不同的類型和不同的值,機器精度是不一樣的。例如double類型的1的機器精度是2.220446049250313e-16;double類型的2的機器精度是4.440892098500626e-16,而single類型的2的精度是2.3841858e-07。那么,上面這段代碼求的是single類型的1的機器精度,即與單精度浮點數(shù)1最相近的浮點數(shù)與1的差值。對于不同的數(shù)據(jù)類型和不同的值,機器精度也不一樣。題目中要求采用單精度數(shù)據(jù)類型,要求計算結(jié)果達到機器精度??梢岳斫鉃?,當(dāng)前計算值與前一計算值的差值要小于等于當(dāng)前計算值的機器精度。%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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 大學(xué)畢業(yè)生就業(yè)協(xié)議書簽訂流程解析
- 2024年兼職協(xié)議樣本
- 2024銷售合作協(xié)議示例
- 個人租房合同書范本
- 房屋室內(nèi)裝修合同書樣式
- 合作契約:展會活動合作契約-合同樣本
- 廣東省餐飲行業(yè)勞動合同
- 2024年技術(shù)開發(fā)合作協(xié)議參考
- 高速公路盾構(gòu)隧道建筑信息模型分類與編碼標(biāo)準(zhǔn)
- 2023年高考地理重點難點考點通練-整體性差異性(解析版)
- 倉儲物流中心物業(yè)安全管理
- 醫(yī)療器械注冊專員培訓(xùn)
- 期末復(fù)習(xí)重要考點03 《一元一次方程》十大考點題型(熱點題型+限時測評)(原卷版)
- 生物丨金太陽(25-69C)廣東省2025屆高三10月大聯(lián)考生物試卷及答案
- 車隊車輛掛靠合同模板
- 期中 (試題) -2024-2025學(xué)年人教PEP版英語四年級上冊
- 動物疫病防治員(高級)理論考試題及答案
- 跨境電商行業(yè)研究框架專題報告
- 提升初中生英語寫作
- 2024年深圳市優(yōu)才人力資源有限公司招考聘用綜合網(wǎng)格員(派遣至吉華街道)高頻500題難、易錯點模擬試題附帶答案詳解
- 高中政治必修四哲學(xué)與文化知識點總結(jié)
評論
0/150
提交評論