版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、基于基于c/c+的大地電磁數(shù)值模擬的大地電磁數(shù)值模擬長(zhǎng)沙航空職業(yè)技術(shù)學(xué)院計(jì)算機(jī)與信息工程系長(zhǎng)沙航空職業(yè)技術(shù)學(xué)院計(jì)算機(jī)與信息工程系2報(bào)告提綱一、數(shù)值計(jì)算二、c/c+與數(shù)值計(jì)算三、大地電磁數(shù)值模擬四、幾點(diǎn)體會(huì)3隨著科學(xué)技術(shù)的飛速發(fā)展,科學(xué)計(jì)算愈來愈顯示出其重要性??茖W(xué)計(jì)算的應(yīng)用之廣已遍及各行各業(yè),例如:氣象資料的分析圖像,飛機(jī)、汽車及輪船的外形設(shè)計(jì),高科技研究等都離不開科學(xué)計(jì)算。一、數(shù)值計(jì)算一、數(shù)值計(jì)算4數(shù)值分析或數(shù)值計(jì)算方法主要是研究如何運(yùn)用計(jì)算機(jī)去獲得數(shù)學(xué)問題的數(shù)值解的理論和方法.對(duì)那些在經(jīng)典數(shù)學(xué)中,用解析方法在理論上已作出解的存在,但要求出他的解析解又十分困難,甚至是不可能的這類數(shù)學(xué)問題,數(shù)
2、值解法就顯得不可缺少,同時(shí)有十分有效.一、數(shù)值計(jì)算一、數(shù)值計(jì)算5計(jì)算機(jī)解決科學(xué)計(jì)算問題時(shí)經(jīng)歷的幾個(gè)過程實(shí)際問題數(shù)學(xué)模型數(shù)值計(jì)算方法程序設(shè)計(jì)上機(jī)運(yùn)行求出解實(shí)際問題數(shù)學(xué)模型:由實(shí)際問題應(yīng)用科學(xué)知識(shí)和數(shù)學(xué)理論建立數(shù)學(xué)模型的過程,是應(yīng)用數(shù)學(xué)的任務(wù)。一、數(shù)值計(jì)算一、數(shù)值計(jì)算6數(shù)值計(jì)算方法程序設(shè)計(jì)計(jì)算結(jié)果:根據(jù)數(shù)學(xué)模型提出求解的數(shù)值計(jì)算方法,直到編出程序上機(jī)算出解,是計(jì)算數(shù)學(xué)的任務(wù)。數(shù)值計(jì)算方法重點(diǎn)研究:求解的數(shù)值方法及與此有關(guān)的理論包括:方法的收斂性,穩(wěn)定性,誤差分析,計(jì)算時(shí)間的最?。ㄒ簿褪怯?jì)算費(fèi)用),占用內(nèi)存空間少.一、數(shù)值計(jì)算一、數(shù)值計(jì)算7有的方法在理論上雖不夠嚴(yán)格,但通過實(shí)際計(jì)算,對(duì)比分析等手段,
3、被證明是行之有效的方法,也可以采用。因此,數(shù)值分析既有純數(shù)學(xué)高度抽象性與嚴(yán)密科學(xué)性的特點(diǎn),又有應(yīng)用的廣泛性與實(shí)驗(yàn)的高度技術(shù)性特點(diǎn),是一門與使用計(jì)算機(jī)密切結(jié)合的實(shí)用性很強(qiáng)的數(shù)學(xué)課程。一、數(shù)值計(jì)算一、數(shù)值計(jì)算8數(shù)值數(shù)值計(jì)算方法的定義數(shù)值數(shù)值計(jì)算方法是研究常見的基本數(shù)學(xué)問題的數(shù)計(jì)算方法是研究常見的基本數(shù)學(xué)問題的數(shù)值解法及其相關(guān)理論的一門數(shù)學(xué)分支,它包含了數(shù)值解法及其相關(guān)理論的一門數(shù)學(xué)分支,它包含了數(shù)值代數(shù)、數(shù)值微分與積分,常微分方程數(shù)值解等內(nèi)值代數(shù)、數(shù)值微分與積分,常微分方程數(shù)值解等內(nèi)容。容。一、數(shù)值計(jì)算一、數(shù)值計(jì)算9誤差來源 1、模型誤差、模型誤差 2、觀測(cè)誤差、觀測(cè)誤差 3、截?cái)嗾`差、截?cái)嗾`差
4、4、舍入誤差、舍入誤差一、數(shù)值計(jì)算一、數(shù)值計(jì)算10模型誤差模型誤差用數(shù)學(xué)模型來描述具體的物理現(xiàn)象時(shí),往往要用數(shù)學(xué)模型來描述具體的物理現(xiàn)象時(shí),往往要忽略許多次要因素,把模型忽略許多次要因素,把模型“簡(jiǎn)單化簡(jiǎn)單化”、“理想理想化化”,因此模型本身就包含有誤差,這種誤差稱為,因此模型本身就包含有誤差,這種誤差稱為模型誤差。模型誤差。一、數(shù)值計(jì)算一、數(shù)值計(jì)算11模型誤差例題模型誤差例題例我們用例我們用 ( 為重力加速度)為重力加速度)來描述物體自由下落時(shí)距離與時(shí)間的關(guān)系設(shè)自由來描述物體自由下落時(shí)距離與時(shí)間的關(guān)系設(shè)自由落體在時(shí)間落體在時(shí)間 時(shí)的實(shí)際下落距離為時(shí)的實(shí)際下落距離為 ,則,則 就是就是 “ “
5、模型誤差模型誤差”。ts21( )2s tgtgt( )tss t一、數(shù)值計(jì)算一、數(shù)值計(jì)算12觀測(cè)誤差觀測(cè)誤差在數(shù)學(xué)模型中總要包含一些觀測(cè)數(shù)據(jù),這些觀在數(shù)學(xué)模型中總要包含一些觀測(cè)數(shù)據(jù),這些觀測(cè)數(shù)據(jù)受工具、方法、觀測(cè)者的主觀因素、不可預(yù)測(cè)數(shù)據(jù)受工具、方法、觀測(cè)者的主觀因素、不可預(yù)料的隨機(jī)干擾等影響必然帶入誤差,這種誤差稱為料的隨機(jī)干擾等影響必然帶入誤差,這種誤差稱為觀測(cè)誤差。觀測(cè)誤差。一、數(shù)值計(jì)算一、數(shù)值計(jì)算13觀測(cè)誤差例題觀測(cè)誤差例題例例2 設(shè)一根鋁棒在溫度設(shè)一根鋁棒在溫度 時(shí)的實(shí)際長(zhǎng)度時(shí)的實(shí)際長(zhǎng)度為為 ,在,在 時(shí)的實(shí)際長(zhǎng)度為時(shí)的實(shí)際長(zhǎng)度為 ,用,用 來表示鋁棒在溫度為來表示鋁棒在溫度為 時(shí)
6、的長(zhǎng)度計(jì)算值,并建時(shí)的長(zhǎng)度計(jì)算值,并建立數(shù)學(xué)模型:立數(shù)學(xué)模型: ,其中其中 是實(shí)驗(yàn)觀測(cè)到的常數(shù):是實(shí)驗(yàn)觀測(cè)到的常數(shù):則稱則稱 為為“模型誤差模型誤差”, 是是 的的“觀測(cè)誤差觀測(cè)誤差”。tlt0t 0ltlt0(1)tllt5(2.38 0.01) 10cttll50.01 10一、數(shù)值計(jì)算一、數(shù)值計(jì)算14截?cái)嗾`差截?cái)嗾`差在解決實(shí)際問題時(shí),數(shù)學(xué)模型常常難于直接求在解決實(shí)際問題時(shí),數(shù)學(xué)模型常常難于直接求解,往往要近似代替,其近似解與精確解之間的誤解,往往要近似代替,其近似解與精確解之間的誤差稱為截?cái)嗾`差。差稱為截?cái)嗾`差。一、數(shù)值計(jì)算一、數(shù)值計(jì)算15截?cái)嗾`差例題截?cái)嗾`差例題例例3 求求 時(shí),可將時(shí)
7、,可將 展開為級(jí)數(shù)形式:展開為級(jí)數(shù)形式:在實(shí)際計(jì)算時(shí),我們只取前面有限項(xiàng)(例如在實(shí)際計(jì)算時(shí),我們只取前面有限項(xiàng)(例如 項(xiàng))項(xiàng))計(jì)算部分和計(jì)算部分和 作為作為 的值必然產(chǎn)生誤差,其誤差的值必然產(chǎn)生誤差,其誤差為:為:這個(gè)誤差就是這個(gè)誤差就是“截?cái)嗾`差截?cái)嗾`差”。212!nxxxexnn2()12 !nnxxsxxn1()(1)!nnerxxn0 x在 與 之間21.2nxxxexn xexexe( )nsx一、數(shù)值計(jì)算一、數(shù)值計(jì)算16舍入誤差舍入誤差在計(jì)算時(shí)總是只能取有限位有效數(shù)字進(jìn)行計(jì)算在計(jì)算時(shí)總是只能取有限位有效數(shù)字進(jìn)行計(jì)算而引起,初始參數(shù)與中間結(jié)果都必須進(jìn)行四舍五入,而引起,初始參數(shù)與中間
8、結(jié)果都必須進(jìn)行四舍五入,這個(gè)誤差稱為舍入誤差。這個(gè)誤差稱為舍入誤差。一、數(shù)值計(jì)算一、數(shù)值計(jì)算17舍入誤差例題舍入誤差例題例例4 4, , , , 等,在計(jì)算機(jī)上運(yùn)等,在計(jì)算機(jī)上運(yùn)算時(shí)只能用有限位小數(shù),如果取小數(shù)點(diǎn)后四位數(shù)字,算時(shí)只能用有限位小數(shù),如果取小數(shù)點(diǎn)后四位數(shù)字,則則 就是就是“舍入誤差舍入誤差 ” ”3.14159262 1.4142135610.3333313.14160.000074l21.414220.000013l 310.33330.0000333l 一、數(shù)值計(jì)算一、數(shù)值計(jì)算18誤差來源分析誤差來源分析總之,誤差一般來自模型誤差、觀測(cè)誤差、截?cái)嗾`差、總之,誤差一般來自模型誤差
9、、觀測(cè)誤差、截?cái)嗾`差、舍入誤差。在計(jì)算方法課程中,不分析模型誤差;觀測(cè)誤差舍入誤差。在計(jì)算方法課程中,不分析模型誤差;觀測(cè)誤差作為初始舍入誤差;截?cái)嗾`差是主要討論對(duì)象,是計(jì)算中誤作為初始舍入誤差;截?cái)嗾`差是主要討論對(duì)象,是計(jì)算中誤差的主要部分。在各種算法中,通過數(shù)學(xué)方法可推導(dǎo)出截?cái)嗖畹闹饕糠?。在各種算法中,通過數(shù)學(xué)方法可推導(dǎo)出截?cái)嗾`差限的公式;舍入誤差產(chǎn)生往往有很大的隨機(jī)性,討論比誤差限的公式;舍入誤差產(chǎn)生往往有很大的隨機(jī)性,討論比較困難,在問題本身呈現(xiàn)病態(tài)或不穩(wěn)定時(shí),它可能成為計(jì)算較困難,在問題本身呈現(xiàn)病態(tài)或不穩(wěn)定時(shí),它可能成為計(jì)算中誤差的主要部分。中誤差的主要部分。誤差分析是一門專門的學(xué)
10、科,經(jīng)過訓(xùn)練的計(jì)算工作者,誤差分析是一門專門的學(xué)科,經(jīng)過訓(xùn)練的計(jì)算工作者,當(dāng)發(fā)現(xiàn)計(jì)算結(jié)果與實(shí)際不符時(shí),應(yīng)當(dāng)能找出誤差的來源,并當(dāng)發(fā)現(xiàn)計(jì)算結(jié)果與實(shí)際不符時(shí),應(yīng)當(dāng)能找出誤差的來源,并采取相應(yīng)的措施加以改進(jìn),甚至對(duì)模型進(jìn)行修改。采取相應(yīng)的措施加以改進(jìn),甚至對(duì)模型進(jìn)行修改。一、數(shù)值計(jì)算一、數(shù)值計(jì)算19誤差理論誤差理論誤差、誤差限、有效數(shù)字誤差、誤差限、有效數(shù)字相對(duì)誤差及與有效數(shù)字的聯(lián)系相對(duì)誤差及與有效數(shù)字的聯(lián)系算術(shù)運(yùn)算的誤差和相對(duì)誤差算術(shù)運(yùn)算的誤差和相對(duì)誤差一、數(shù)值計(jì)算一、數(shù)值計(jì)算20誤差的概念誤差的概念定義定義1.1 設(shè)設(shè) 為準(zhǔn)確值,為準(zhǔn)確值, 為為 的的一個(gè)近似值,稱一個(gè)近似值,稱 為為 近似值的
11、絕近似值的絕對(duì)誤差,簡(jiǎn)稱誤差。對(duì)誤差,簡(jiǎn)稱誤差。誤差是有量綱的量,量綱同誤差是有量綱的量,量綱同 ,它可正可,它可正可負(fù),當(dāng)絕對(duì)誤差為正時(shí),近似值偏大,叫強(qiáng)近似值;負(fù),當(dāng)絕對(duì)誤差為正時(shí),近似值偏大,叫強(qiáng)近似值;當(dāng)絕對(duì)誤差為負(fù)時(shí),近似值偏小,則稱弱近似值。當(dāng)絕對(duì)誤差為負(fù)時(shí),近似值偏小,則稱弱近似值。*exx*x*xxxx一、數(shù)值計(jì)算一、數(shù)值計(jì)算21絕對(duì)誤差限絕對(duì)誤差限通常我們并不知道準(zhǔn)確值通常我們并不知道準(zhǔn)確值 ,也不能算出,也不能算出誤差的準(zhǔn)確值,但能根據(jù)測(cè)量工具或計(jì)算情況估計(jì)誤差的準(zhǔn)確值,但能根據(jù)測(cè)量工具或計(jì)算情況估計(jì)出誤差的絕對(duì)值的上限,這個(gè)上限稱為近似值出誤差的絕對(duì)值的上限,這個(gè)上限稱為
12、近似值 的誤差限。記為的誤差限。記為 。 即即 在工程中常記為:在工程中常記為: *xxe*xxx*x一、數(shù)值計(jì)算一、數(shù)值計(jì)算22絕對(duì)誤差限例題例例5 我們用一把毫米刻度的米尺來測(cè)量桌子的我們用一把毫米刻度的米尺來測(cè)量桌子的長(zhǎng)度長(zhǎng)度 ,讀出的長(zhǎng)度為,讀出的長(zhǎng)度為 , 是是 的近似值,由于米尺的精度知道,的近似值,由于米尺的精度知道,它的誤差限為它的誤差限為0.5mm,則有,則有*12350.51234.51235.51234.5,1235.512350.5xxxmmxxxmm即這表明 在區(qū)間內(nèi),寫成*1235xmm*xxx一、數(shù)值計(jì)算一、數(shù)值計(jì)算23相對(duì)誤差相對(duì)誤差定義定義1.2 誤差與精確值
13、的比值誤差與精確值的比值 稱作近似值稱作近似值 的相對(duì)誤差,記作。相對(duì)的相對(duì)誤差,記作。相對(duì)誤差是無量綱的量,常用百分比表示,它可正可負(fù)。誤差是無量綱的量,常用百分比表示,它可正可負(fù)。*exxxx*xre一、數(shù)值計(jì)算一、數(shù)值計(jì)算24相對(duì)誤差限相對(duì)誤差限相對(duì)誤差也不能準(zhǔn)確計(jì)算,而是用相對(duì)誤差限相對(duì)誤差也不能準(zhǔn)確計(jì)算,而是用相對(duì)誤差限來估計(jì)的:來估計(jì)的: 就是相對(duì)誤差限當(dāng)就是相對(duì)誤差限當(dāng) 較小時(shí),較小時(shí),可以忽略不計(jì),所以以后我們就用可以忽略不計(jì),所以以后我們就用 表示相表示相對(duì)誤差限。對(duì)誤差限。*rrxxexxrr*x一、數(shù)值計(jì)算一、數(shù)值計(jì)算25相對(duì)誤差限例題相對(duì)誤差限例題稱兩堆蘋果,第一堆稱兩
14、堆蘋果,第一堆 ,誤差為,誤差為 ;第二堆為第二堆為 ,誤差為,誤差為 ,雖然后者的誤差限,雖然后者的誤差限比前者大,但不能簡(jiǎn)單地認(rèn)為前者精確,還必須注比前者大,但不能簡(jiǎn)單地認(rèn)為前者精確,還必須注意到該數(shù)本身的大小。意到該數(shù)本身的大小。 相對(duì)誤差分別為:相對(duì)誤差分別為:顯然,稱第一堆蘋果的相對(duì)誤差大。顯然,稱第一堆蘋果的相對(duì)誤差大。100kg10kg2kg1kg110%10re 22%100re 一、數(shù)值計(jì)算一、數(shù)值計(jì)算26有效數(shù)字位數(shù)有效數(shù)字位數(shù)定義定義1.3 如果近似值如果近似值 的絕對(duì)誤差限的絕對(duì)誤差限 是某一是某一位數(shù)字的半個(gè)單位,我們就說位數(shù)字的半個(gè)單位,我們就說 準(zhǔn)確到該位,從這準(zhǔn)
15、確到該位,從這一位起直到前面的第一位非零數(shù)字為止的所有數(shù)字一位起直到前面的第一位非零數(shù)字為止的所有數(shù)字稱為稱為 的有效數(shù)字。的有效數(shù)字。*x*x*x一、數(shù)值計(jì)算一、數(shù)值計(jì)算27有效數(shù)字位數(shù)(續(xù))413.1416102513.14159102則說則說x* 近似表示近似表示 x 準(zhǔn)確到小數(shù)后第準(zhǔn)確到小數(shù)后第n位,并從這第位,并從這第n位起位起直到最左邊的非零數(shù)字之間的一切數(shù)字都稱為直到最左邊的非零數(shù)字之間的一切數(shù)字都稱為,并把有效數(shù)字的位數(shù)稱為并把有效數(shù)字的位數(shù)稱為。定義:定義:如果如果*1102nxx(1.7)由上述定義由上述定義3.140.0015926有效數(shù)位為有效數(shù)位為3位位3.14160
16、.0000074 有效數(shù)位為有效數(shù)位為5位位3.14150.0000926有效數(shù)位為有效數(shù)位為4位位一、數(shù)值計(jì)算一、數(shù)值計(jì)算28有效數(shù)字位數(shù)例題0.034039*0.0342*0.03403*0.034044xxxx例:設(shè),那么取2位,有效數(shù)字位數(shù)為 位;取3位,有效數(shù)字位數(shù)為 位;取4位,有效數(shù)字位數(shù)為 位;一、數(shù)值計(jì)算一、數(shù)值計(jì)算29重要定理、結(jié)論重要定理、結(jié)論定理定理1.1 設(shè)近似值設(shè)近似值 , 有有n位有效數(shù)字,則其相對(duì)誤差限為位有效數(shù)字,則其相對(duì)誤差限為 定理定理1.2 設(shè)近似值設(shè)近似值 的相對(duì)的相對(duì)誤差限為:誤差限為: , , 則它有則它有n位有效數(shù)字。位有效數(shù)字。12*0.10m
17、nxa aa 10a 111102nra12*0.10mnxa aa111102(1)na 10a 30 計(jì)算物理的物質(zhì)基礎(chǔ)是計(jì)算機(jī);計(jì)算物理的關(guān)鍵技術(shù)是“計(jì)算方法”和“程序設(shè)計(jì)”; 計(jì)算物理發(fā)展的原始動(dòng)力是美國(guó)核武器研制的刺激。二、二、c/c+與數(shù)值計(jì)算與數(shù)值計(jì)算31例1 編寫下面連分式的計(jì)算程序: )()( )()(1121100nnnnxfxxxfxxxfxxxfxxxfxs 75.0 , 10, 1 ,01.0 ,112xiixxxfi數(shù)值計(jì)算數(shù)值計(jì)算32算法分析:我們知道程序運(yùn)行時(shí)用賦值語句作每一步計(jì)算都要求表達(dá)式右端中每個(gè)變量都有確定的值,且能寫出其表達(dá)式,從式可以看出只能從最下層
18、逐一計(jì)算。令1nnnnxfxxxfs則 ,02,-n1,-ni ,s 1i111iiinnnnsxxxfsxxxfs數(shù)值計(jì)算數(shù)值計(jì)算33數(shù)值計(jì)算程序如下:程序如下:#define n 10#define n 10float f(float x)float f(float x) float y; float y; y=1/(1+x y=1/(1+x* *x);x); return y; return y; main( )main( ) int i; int i; float h=0.1, s, x0, float h=0.1, s, x0, x1,x2;x1,x2; float xn+1; fl
19、oat xn+1; for(i=0;i=n;i+) for(i=0;i=0;i-) for(i=n-2;i=0;i-) s = f ( x i ) + ( x 0 - s = f ( x i ) + ( x 0 -xi)/s;xi)/s; printf( the result is: printf( the result is: %fn,s);%fn,s); 程序運(yùn)行結(jié)果為:程序運(yùn)行結(jié)果為: please input x: please input x: 0.750.75the result is: 1.514020the result is: 1.51402034數(shù)值計(jì)算例2 用復(fù)合梯形積分
20、公式計(jì)算的值。 算法及分析:梯形積分公式為: 1 2 1 0 2/ *2/*111111niihaxnabhxfbfafhxfhhbfafdxxfsiniiniiba,35數(shù)值計(jì)算 #define pi 3.1415926float f(float x) float y; y=1/(1+x*x); return y;main( ) int i, j, n; float x,h,a,b,s; b=pi; a=-pi; p r i n t f ( p l e a s e input n:); scanf( %d ,&n); h=(b-a)/n; s=(f(a)+f(b)/2; for( i
21、=1;in;i+) x=a+i*h; s=s+f(x); s=s*h; printf(the value is :%f,s);程序運(yùn)行結(jié)果為: please input n: 100 the value is : 2.525219 36數(shù)值計(jì)算例3 若矩陣a是m行n列的實(shí)矩陣,矩陣b是n行p列的實(shí)矩陣,求c=a*b。 算法及分析:矩陣乘積的計(jì)算公式為: p21jm21i 1,;,nkkjikijbac37數(shù)值計(jì)算#define m 4#define m 4 #define n 3 #define n 3 #define p 2 #define p 2 main ( ) main ( ) int
22、 i,j,k; int i,j,k; int int am+1n+1,bn+1p+1,cm+1p+am+1n+1,bn+1p+1,cm+1p+1;1; printf(please input printf(please input matrix a:n);matrix a:n); for(i=1;i=m;i+) for(i=1;i=m;i+) for(j=1;j=n;j+) for(j=1;j=n;j+) scanf scanf (%d,&aij);(%d,&aij); printf(please input printf(please input matrix b:n);ma
23、trix b:n); for(i=1;i=n;i+) for(i=1;i=n;i+) for(j=1;j=p;j+) for(j=1;j=p;j+) scanf scanf (%d,&bij);(%d,&bij); for(i=1;i=m;i+)for(i=1;i=m;i+) for(j=1;j=p;j+) for(j=1;j=p;j+) cij=0; cij=0; for(k=1;k=n;k+) for(k=1;k=n;k+) cij=cij+aikcij=cij+aik* *bkj;bkj; printf(the value of printf(the value of m
24、atrix c:n);matrix c:n); for(i=1;i=m;i+) for(i=1;i=m;i+) for(j=1;j=p;j+)for(j=1;j=p;j+) p r i n t f ( % d p r i n t f ( % d ,cij);,cij); printf( n); printf( n); 38數(shù)值計(jì)算運(yùn)行結(jié)果為: please input matrix a: 3 4 3 2 6 1 1 2 3 4 5 6 please input matrix b: 3 2 1 2 4 1the value of matrix c:25 1716 1717 941 2439數(shù)值計(jì)
25、算例4 用二分法求 f(x)=x5+x4+x3-1=0的根,x0,1。算法及分析:) 1()0(00bbaa2/000bac1 . 36 ) ,)( 2/)0( )0( *)0( )0( *21111111111111iiiiiiiiiiiiiiiiiiiiabcfbaccfbfbcfbfcbcfafacfafca令 使用二分法求解f(x)=0的前提是f(a)f(b)0,xa,b內(nèi)只有一個(gè)根。則二分法的計(jì)算公式為:40數(shù)值計(jì)算# include float f(float x) float y; y=pow(x,5)+pow(x,4)+pow(x,3)-1; return(y); main(
26、) float c,a,b,ep1,ep2; printf(please input a,b,ep1,ep2:); scanf(%f%f%f%f,&a,&b,&ep1,&ep2); c=(a+b)/2;w h i l e ( ( b -aep2)&fabs(f(c)ep1) if (f(a)*f(c)0) a=c; else b=c; c=(b+a)/2; printf (the solve is: %f,c);運(yùn)行結(jié)果為: p l e a s e i n p u t a,b,ep1,ep2: 0 1 0.0001 0.0001the solve is:
27、 0.00003141數(shù)值計(jì)算例5 用二分法求任意函數(shù)的用二分法求任意函數(shù)的 f(x)f(x)的根的根#include #include #define jmax 40 #define jmax 40 允許迭代的最大次數(shù)允許迭代的最大次數(shù)float rtbis(float (float rtbis(float (* *func)(float), float x1, float func)(float), float x1, float x2, float xacc)x2, float xacc) 已知位于已知位于x1x1和和x2x2之間的函數(shù)之間的函數(shù)funcfunc,用二分法求其根。,用二分
28、法求其根。在精度達(dá)到在精度達(dá)到xaccxacc之前,這個(gè)根將被不斷修正,并最終以之前,這個(gè)根將被不斷修正,并最終以rtbrtb返回返回int j;int j;float dx, f, fmid, xmid, rtb;float dx, f, fmid, xmid, rtb;f=(f=(* *func)(x1);func)(x1);fmid=(fmid=(* *func)(x2);func)(x2);42數(shù)值計(jì)算if (fif (f* *fmid = 0.0) printf(root must be fmid = 0.0) printf(root must be bracketed for bi
29、section in rtbis);bracketed for bisection in rtbis);rtb = f 0.0 ? (dx=x2-x1,x1) : (dx=x1-x2,x2);rtb = f 0.0 ? (dx=x2-x1,x1) : (dx=x1-x2,x2);for (j=1;j=jmax;j+) for (j=1;j=jmax;j+) fmid=(fmid=(* *func)(xmid=rtb+(dx func)(xmid=rtb+(dx * *= 0.5);= 0.5);if (fmid = 0.0) rtb=xmid;if (fmid = 0.0) rtb=xmid;
30、if (fabs(dx) xacc | fmid = 0.0) if (fabs(dx) =0;i-) si=si+1*x+ai;45數(shù)值計(jì)算#define n 5main( ) int i; float an+1, sn+1, x; printf(請(qǐng)輸入多項(xiàng)式的各個(gè)系數(shù):n); for(i=0;i=0;i-) si=si+1*x+ai;p r i n t f ( f ( % f ) = %fn,x,s0);46數(shù)值計(jì)算假設(shè)計(jì)算多項(xiàng)式:假設(shè)計(jì)算多項(xiàng)式: 5 . 3222 . 1245xxxxxf當(dāng)x=2的值。程序運(yùn)行結(jié)果為: 請(qǐng)輸入多項(xiàng)式的系數(shù): a0=3.5 a1=2 a2=1 a3=0 a
31、4=2 a5=1.2 請(qǐng)輸入x的值:2 f(2.00000)=81.90000247數(shù)值計(jì)算 21i 2101110iiiiixxxxxxx;,0 x例例7 用迭代法求一個(gè)數(shù)用迭代法求一個(gè)數(shù)x(0)的平方根。)的平方根。求平方根的迭代公式可以為:求平方根的迭代公式可以為: 其中,是為x指定的初始平方根,是為所求平方根指定的精度。48數(shù)值計(jì)算#include float def_sqrt( float x)float x0,x1;x0=x/2;x1=(x0+x/x0)/2;while(fabs(x1-x0)1e-6) /*迭代過程,精度為*/x0=x1;x1=(x0+x/x0)/2;return
32、 x1;main( )float x;printf( please input x: );scanf(%f,&x);if(x0) p r i n t f ( d e f _ s q r t : %fn,def_sqrt(x); p r i n t f ( s q r t : % f n ,sqrt(x);else printf(the input is error!n);程序運(yùn)行結(jié)果:please input x: 2 def_sqrt: 1.414214sqrt: 1.41421449 在數(shù)值計(jì)算時(shí)應(yīng)注意的幾個(gè)問題在數(shù)值計(jì)算時(shí)應(yīng)注意的幾個(gè)問題順序:基本運(yùn)算順序順序:基本運(yùn)算順序一、減
33、少運(yùn)算次數(shù)一、減少運(yùn)算次數(shù) 不僅能提高計(jì)算精度,而且能減少誤差的積累不僅能提高計(jì)算精度,而且能減少誤差的積累1、對(duì)同一種算法(計(jì)算方式),要選用計(jì)算量少的運(yùn)算次序、對(duì)同一種算法(計(jì)算方式),要選用計(jì)算量少的運(yùn)算次序例如例如),(dcbaadacab dcxbxax 23精度(數(shù)值穩(wěn)定性)精度(數(shù)值穩(wěn)定性). .運(yùn)算方案能否控制誤差的傳播和積累以保證計(jì)算結(jié)果有足夠的運(yùn)算方案能否控制誤差的傳播和積累以保證計(jì)算結(jié)果有足夠的一般標(biāo)準(zhǔn)一般標(biāo)準(zhǔn)運(yùn)算次數(shù)的多少(計(jì)算效率);運(yùn)算次數(shù)的多少(計(jì)算效率);運(yùn)算過程是否規(guī)律(易編程);運(yùn)算過程是否規(guī)律(易編程);需要記錄的中間結(jié)果的多少(儲(chǔ)存量);需要記錄的中間結(jié)
34、果的多少(儲(chǔ)存量); ,)(dxcxbax 精度(數(shù)值穩(wěn)定性)精度(數(shù)值穩(wěn)定性). .運(yùn)算方案能否控制誤差的傳播和積累以保證計(jì)算結(jié)果有足夠的運(yùn)算方案能否控制誤差的傳播和積累以保證計(jì)算結(jié)果有足夠的運(yùn)算次數(shù)的多少(計(jì)算效率);運(yùn)算次數(shù)的多少(計(jì)算效率);50 例例1的的值值。計(jì)計(jì)算算多多項(xiàng)項(xiàng)式式0111)(axaxaxaxpnnnnn 次次乘乘法法,需需作作計(jì)計(jì)算算nxann;2)1(12)1()( nnnnxpn的的值值需需作作乘乘法法次次數(shù)數(shù):計(jì)計(jì)算算.n加加法法次次數(shù)數(shù):(b) 利用秦九韶算法:利用秦九韶算法:(a) 直接計(jì)算每一項(xiàng)再求和:直接計(jì)算每一項(xiàng)再求和: ).(,;)(1 , 2 ,
35、 1,11nnkkkknnnaxssasxp的的遞遞推推公公式式:計(jì)計(jì)算算 解:解:),(0 xpsn 則則次次加加法法。次次乘乘法法的的值值只只需需作作計(jì)計(jì)算算nnxpn)(011)()(aaaxaxxxxpnnn 例例2階階單單位位方方陣陣。試試求求是是維維向向量量均均為為和和已已知知ninxuu,21 解:解:,)(2)2(22221uxuxxuuiytt .)(2)2(1111111uyuyyuuiytt (a) 作矩陣和向量的乘法:作矩陣和向量的乘法:略略.(b) 作向量的內(nèi)積和加法:作向量的內(nèi)積和加法:計(jì)算次數(shù)少計(jì)算次數(shù)少過程規(guī)律過程規(guī)律xuuiuuiytt)2)(2(2211 乘
36、除法乘除法: kn乘除法乘除法: kn2512、對(duì)于不同的算法,要注意收斂速度,講效率、對(duì)于不同的算法,要注意收斂速度,講效率 例例3 計(jì)算計(jì)算 ln2 的近似值,要求誤差小于的近似值,要求誤差小于10 . 解:解:,1)1(211sln211nnxn ,則得,則得取取,10112ln7 nsn誤差誤差. 1107 n 計(jì)算量太大;計(jì)算量太大; 各項(xiàng)的舍入誤差會(huì)損失和的有效數(shù)字各項(xiàng)的舍入誤差會(huì)損失和的有效數(shù)字 (b) 用級(jí)數(shù)用級(jí)數(shù) 來計(jì)算來計(jì)算)1()1231(211ln22 xmxxxxxm,)31(121)31(51)31(31132ln231242 mmx,則則取取,)31(171)31
37、(51)31(31132ln216428 s用前用前 9 項(xiàng)(即取項(xiàng)(即取 m = 8)計(jì)算就能達(dá)到精度要求)計(jì)算就能達(dá)到精度要求:.102ln78 s即即舍入誤差舍入誤差(a) 用級(jí)數(shù)用級(jí)數(shù) 來計(jì)算來計(jì)算)1 , 1() 1(321)ln(1132 xnxxxxnn52結(jié)果不可靠,計(jì)算失敗結(jié)果不可靠,計(jì)算失敗否則,則稱這個(gè)算法是否則,則稱這個(gè)算法是數(shù)值不穩(wěn)定的數(shù)值不穩(wěn)定的。二、二、 數(shù)值計(jì)算中要構(gòu)造和使用數(shù)值計(jì)算中要構(gòu)造和使用數(shù)值穩(wěn)定數(shù)值穩(wěn)定的計(jì)算方法的計(jì)算方法算法是數(shù)值穩(wěn)定的算法是數(shù)值穩(wěn)定的 計(jì)算結(jié)果受計(jì)算過程中舍入誤差影響較小時(shí)。計(jì)算結(jié)果受計(jì)算過程中舍入誤差影響較小時(shí)。1、注意、注意計(jì)算
38、機(jī)數(shù)系計(jì)算機(jī)數(shù)系運(yùn)算特點(diǎn)運(yùn)算特點(diǎn)有理數(shù)的有限數(shù)集,即浮點(diǎn)集有理數(shù)的有限數(shù)集,即浮點(diǎn)集例例4 討論在計(jì)算機(jī)數(shù)系中分別用公式討論在計(jì)算機(jī)數(shù)系中分別用公式同同。中中點(diǎn)點(diǎn)時(shí)時(shí)所所得得結(jié)結(jié)果果是是否否相相求求和和,2221baabambam 解:解:無誤差時(shí),必相等;無誤差時(shí),必相等;有舍入誤差時(shí),可能不相等,有舍入誤差時(shí),可能不相等,算算時(shí)時(shí),結(jié)結(jié)果果如如下下:用用四四位位有有效效數(shù)數(shù)字字進(jìn)進(jìn)行行計(jì)計(jì)若若,355. 8,243. 5 ba a a b b m m m m 準(zhǔn)確值準(zhǔn)確值 5.243 5.243 8.3558.355 6.8001.556 6.7991.557 6.7991.5566.79
39、9-1.55653,2,1 ,010),(21 nnnxaxxa,由由公公式式為為已已知知數(shù)數(shù),對(duì)對(duì)任任意意數(shù)數(shù)設(shè)設(shè) 解解:)(211axaxnn 由由遞遞推推公公式式得得).()21(011axaxnn 在實(shí)數(shù)集上,在實(shí)數(shù)集上,;0axaxn嚴(yán)嚴(yán)格格單單調(diào)調(diào)趨趨于于只只要要 取取4位有效數(shù)字近似計(jì)算位有效數(shù)字近似計(jì)算:,680. 5,680. 5,686. 5:nx非嚴(yán)格單調(diào)序列非嚴(yán)格單調(diào)序列且極限也不等于且極限也不等于a4位有效數(shù)字舍入運(yùn)算:位有效數(shù)字舍入運(yùn)算:1234+0.4+0.3+0.2+0.1=12340.4+0.3+0.2+0.1+1234=1235若出現(xiàn)若出現(xiàn)“溢出溢出”應(yīng)立即
40、中應(yīng)立即中斷斷應(yīng)避免出現(xiàn)應(yīng)避免出現(xiàn)“大數(shù)吃小數(shù)大數(shù)吃小數(shù)” 事先預(yù)防事先預(yù)防 事后解決事后解決 例例7.)(2122ba 求求解解:,則則設(shè)設(shè),maxbac .)()()(21222122 cbcacba可防溢出可防溢出精確運(yùn)算精確運(yùn)算:例例6686. 5,678. 50 xa如如取取試試研研究究此此序序列列的的極極限限。所所得得的的序序列列為為.nx 例例5542、防止兩接近的數(shù)相減、防止兩接近的數(shù)相減.01182 xx例例8 求下列方程的根求下列方程的根解解:.809,80921 xx用用 8 位浮點(diǎn)數(shù)位浮點(diǎn)數(shù) (有效數(shù)字有效數(shù)字)計(jì)算計(jì)算1089442719. 080 .1055728091. 0,1017944272. 01221 xx用用 4 位浮數(shù)點(diǎn)位浮數(shù)點(diǎn)(有效數(shù)字有效數(shù)字)計(jì)算計(jì)算108944.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年高效能玻璃鋼化糞池采購協(xié)議范本版B版
- 2024自用房屋租賃合同
- 2025年違約借款合同糾紛解決途徑3篇
- 二零二五年度新能源汽車OEM制造與零部件供應(yīng)合同3篇
- 2025廠房土地買賣合同中對(duì)環(huán)境友好型建筑標(biāo)準(zhǔn)的約定3篇
- 2025年度森林資源管理與測(cè)繪合同范本3篇
- 2024網(wǎng)絡(luò)安全與信息保密合同
- 二零二四三方詢價(jià)采購合同-國(guó)際物流運(yùn)輸服務(wù)采購2篇
- 2024石料礦山資源整合與開采合同3篇
- 二零二五版全國(guó)CHS技術(shù)交流與合作合同3篇
- 勞務(wù)投標(biāo)技術(shù)標(biāo)
- 研發(fā)管理咨詢項(xiàng)目建議書
- 濕瘡的中醫(yī)護(hù)理常規(guī)課件
- 轉(zhuǎn)錢委托書授權(quán)書范本
- 一種配網(wǎng)高空作業(yè)智能安全帶及預(yù)警系統(tǒng)的制作方法
- 某墓園物業(yè)管理日常管護(hù)投標(biāo)方案
- 蘇教版六年級(jí)數(shù)學(xué)上冊(cè)集體備課記載表
- NUDD新獨(dú)難異 失效模式預(yù)防檢查表
- 內(nèi)蒙古匯能煤電集團(tuán)有限公司長(zhǎng)灘露天煤礦礦山地質(zhì)環(huán)境保護(hù)與土地復(fù)墾方案
- 22S702 室外排水設(shè)施設(shè)計(jì)與施工-鋼筋混凝土化糞池
- 2013日產(chǎn)天籟全電路圖維修手冊(cè)45車身控制系統(tǒng)
評(píng)論
0/150
提交評(píng)論