日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

数值计算方法第一章—数值计算引论

發布時間:2023/12/14 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数值计算方法第一章—数值计算引论 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

數值計算引論

本文參考書為馬東升著《數值計算方法》

誤差的來源

  • 觀測誤差(測量誤差)

    觀測或實驗所得到的參數與真值的誤差

  • 模型誤差(描述誤差)

    建立的數學模型與實際事物的差距。如自由落體的數學模型 s=12gt2s=\dfrac 12gt^2s=21?gt2 忽略了空氣阻力

  • 截斷誤差(方法誤差)

    許多數學運算是通過極限過程來定義的,而計算機只能完成有限次運算。故實際應用需要將解題方案加工成有限序列,即表現為無窮過程的截斷

    例:數學模型是無窮級數
    ∑k=0+∞1k!f(k)(x0)\sum_{k=0}^{+\infty}\frac 1{k!}f^{(k)}(x_0) k=0+?k!1?f(k)(x0?)
    實際計算中,只能
    截取
    前面的有限項
    ∑k=0n?11k!f(k)(x0)\sum_{k=0}^{n-1}\frac 1{k!}f^{(k)}(x_0) k=0n?1?k!1?f(k)(x0?)
    即舍去無窮級數后半段,產生了截斷誤差


  • 舍入誤差(計算誤差)

    因為受計算機字長限制,參與運算的數據總是只能具有有限位,原始數據表示可能產生誤差,每一次運算又可能產生新的誤差

    例:圓周率只能存儲有限位,如 π\piπ 存儲為四位小數 3.14163.14163.1416 ,則
    3.1416?π=0.0000073?3.1416-\pi=0.0000073\cdots 3.1416?π=0.0000073?
    即為
    舍入誤差

近似數的誤差表示

  • 絕對誤差

    x?x^*x? 為準確值 xxx 的一個近似值,稱
    e(x?)=x?xxe(x^*)=x-x^x e(x?)=x?xx
    是近似值 xxx 的絕對誤差。簡記為 e?e^*e?

    因為準確值往往不知道,故定義:若
    ∣e?∣=∣x?x?∣≤ε(x?)|e^*|=|x-x^*|\le \varepsilon(x^*) e?=x?x?ε(x?)
    則稱 ε(x?)\varepsilon(x^*)ε(x?) 為絕對誤差限。簡記為 ε?\varepsilon^*ε?

    例:

    四舍五入誤差限
    ∣x?x?∣≤12×10m?n|x-x^*|\le \dfrac 12 \times 10^{m-n} x?x?21?×10m?n
    即四舍五入得到的近似數的誤差限末位的半個單位

    例: 圓周率四舍五入近似數3.1416,求其誤差限

    解:

    • 法1,誤差限是末位的半個單位

    ε?=12×10?4\varepsilon ^*=\dfrac 12\times 10^{-4} ε?=21?×10?4

    • 法2(主要方法)

    ε?=12×10m?n,m=1,n=5\varepsilon^*=\dfrac 12\times10^{m-n}\ ,\ m=1\ ,\ n=5 ε?=21?×10m?n?,?m=1?,?n=5


    m?n=?4,ε?=12×10?4m-n=-4\ ,\ \varepsilon ^*=\dfrac 12\times 10^{-4} m?n=?4?,?ε?=21?×10?4


  • 相對誤差

    x?x^*x? 為準確值 xxx 的一個近似值,稱
    er(x?)=e?x=x?x?xe_r(x^*)=\dfrac {e^*}x=\dfrac {x-x^*}x er?(x?)=xe??=xx?x??
    為近似值 x?x^*x? 的相對誤差。簡記為 er?e_r^*er??

    若正數 εr?\varepsilon_r^*εr?? 滿足
    ∣er?∣=∣x?x?x∣≤εr?|e_r^*|=|\dfrac {x-x^*}x|\le \varepsilon_r^* er??=xx?x??εr??
    則稱 εr?\varepsilon_r^*εr??xxx 的相對誤差限

    實際上精確值往往未知,故常把
    ∣er?∣=∣x?x?x∣≤ε?∣x?∣=εr(x?)|e_r^*|=|\dfrac {x-x^*}x|\le \dfrac {\varepsilon^*}{|x^*|}=\varepsilon_r(x^*) er??=xx?x??x?ε??=εr?(x?)
    作為 x?x^*x?相對誤差

    例: 取3.14作為 π\piπ 的四舍五入近似值時,求其相對誤差限

    解: 近似值 x?=3.14x^*=3.14x?=3.14 的絕對誤差限為 ε?=12×10?2\varepsilon^*=\dfrac 12\times 10^{-2}ε?=21?×10?2 ,則其相對誤差限為
    εr?=ε?∣x?∣=12×10?23.14=0.159%\varepsilon_r^*=\dfrac {\varepsilon^*}{|x^*|}=\dfrac {\dfrac 12\times10^{-2}}{3.14}=0.159\% εr??=x?ε??=3.1421?×10?2?=0.159%


  • 有效數字

    設近似值 x?=0.x1x2?xn?×10mx^*=0.x_1x_2\cdots x_n\cdots \times10^mx?=0.x1?x2??xn??×10m ,且 x1≠0x_1\ne0x1??=0 ,若
    ∣x?x?∣≤12×10m?n|x-x^*|\le \frac 12\times 10^{m-n} x?x?21?×10m?n
    則稱 x?x^*x?xxx 具有 nnn 位有效數字的近似值

    **例:**取3.142和3.141作為 π\piπ 的近似值,各有幾位有效數字?

    解:∣π?3.142∣=0.000407?<0.0005<12×10?3|\pi-3.142|=0.000407\cdots<0.0005<\dfrac 12\times10^{-3}π?3.142=0.000407?<0.0005<21?×10?3

    因為 m?n=?3,m=1m-n=-3,m=1m?n=?3,m=1 ,故有 n=4n=4n=4 (4位有效數字)

    ∣π?3.141∣=0.00059?<0.005<12×10?2|\pi-3.141|=0.00059\cdots<0.005<\dfrac 12\times10^{-2}π?3.141=0.00059?<0.005<21?×10?2

    因為 m?n=?2,m=1m-n=-2,m=1m?n=?2,m=1 ,故有 n=3n=3n=3 (3位有效數字)


    快速判斷:

    • 因為四舍五入誤差限

    ∣x?x?∣≤12×10m?n|x-x^*|\le \dfrac 12 \times 10^{m-n} x?x?21?×10m?n

    即四舍五入得到的近似數的誤差限末位的半個單位

    故四舍五入得到的近似數全是有效數字

    • 若用四舍五入取準確值的前 nnnx?x^*x? 作為近似值,則 x?x^*x? 必有 nnn 個有效數字

    例: 自然對數的底 e=2.718281828459045?e=2.718281828459045\cdotse=2.718281828459045?

    取四舍五入近似值

    e?=2.718e^*=2.718e?=2.718 ,有4位有效數字(第四位 2 被四舍五入舍去)

    e?=2.7182e^*=2.7182e?=2.7182 ,有4位有效數字(不是四舍五入)

    e?=2.71828e^*=2.71828e?=2.71828 ,有6位有效數字(第六位 1 被四舍五入舍去)

  • 有效數字與相對誤差

    • 若近似數 x?=0.x1x2?xn?×10mx^*=0.x_1x_2\cdots x_n\cdots \times10^mx?=0.x1?x2??xn??×10m 具有 nnn 位有效數字,則其相對誤差
      ∣er?∣≤12x1×10?(n?1)|e_r^*|\le \dfrac 1{2x_1}\times10^{-(n-1)} er??2x1?1?×10?(n?1)
      有效數字位數越多,相對誤差越小

    • 若近似數 x?=0.x1x2?xn?×10mx^*=0.x_1x_2\cdots x_n\cdots \times10^mx?=0.x1?x2??xn??×10m 的相對誤差
      ∣er?∣≤12(x1+1)×10?(n?1)|e^*_r|\le\dfrac 1{2(x_1+1)}\times10^{-(n-1)} er??2(x1?+1)1?×10?(n?1)
      則該近似數至少具有 nnn 位有效數字

    例: 取3.14作為圓周率四舍五入近似值,試求其相對誤差

    解: 四舍五入近似數3.14有三位有效數字,故
    εr?=12x1×10?(n?1)=12×3×10?(3?1)=0.17%\varepsilon_r^*=\dfrac 1{2x_1}\times10^{-(n-1)}=\dfrac 1{2\times 3}\times10^{-(3-1)}=0.17\% εr??=2x1?1?×10?(n?1)=2×31?×10?(3?1)=0.17%

    例:6\sqrt 66? 的近似值,使其相對誤差不超過 12×10?3\dfrac 12\times10^{-3}21?×10?3

    解: 因為 6=2.4494?\sqrt 6=2.4494\cdots6?=2.4494? 則由
    12×2×10?(n?1)≤12×10?3\dfrac 1{2\times2}\times10^{-(n-1)}\le \dfrac 12 \times10^{-3} 2×21?×10?(n?1)21?×10?3
    n=4n=4n=4 ,故取 x?=2.449x^*=2.449x?=2.449

    但當 x?=2.45x^*=2.45x?=2.45 時,∣6?2.452.45∣≈0.0208%<12×10?3|\dfrac {\sqrt 6-2.45}{2.45}|\approx0.0208\%<\dfrac 12\times10^{-3}2.456??2.45?0.0208%<21?×10?3

    由于定理一是對所有具有 n 位有效數字得近似數都成立,故誤差限的估計偏大

    例: 已知近似數的相對誤差為 0.25%0.25\%0.25% ,問可能有幾位有效數字

    解:
    ∣er?∣≤12(x1+1)×10?(n?1)|e^*_r|\le\dfrac 1{2(x_1+1)}\times10^{-(n-1)} er??2(x1?+1)1?×10?(n?1)
    0.25%=12(x1+1)×10?(n?1)0.25\%=\dfrac 1{2(x_1+1)}\times10^{-(n-1)}0.25%=2(x1?+1)1?×10?(n?1)
    {x1=1,則n=3x1=9,則n=2.3\begin{cases} x_1=1,\ 則n=3\\ x_1=9,\ 則n=2.3 \end{cases} {x1?=1,?n=3x1?=9,?n=2.3?
    按最不利得情況,至少有 2 位有效數字

近似數的運算

  • 近似數的加法

    • 和的絕對誤差等于各項絕對誤差之和
    • 和的絕對誤差限不超過各項絕對誤差限之和
    • 和的相對誤差介于各項的相對誤差中的最大值和最小值之間
  • 近似數的減法

    • 差的絕對誤差限不超過兩數絕對誤差限之和
  • 近似數的乘法

    • 積的相對誤差限不超過各因子的相對誤差限之和
  • 函數運算誤差

    • e(f(x?))≈∣f′(x?)∣ε?e(f(x^*))\approx|f'(x^*)|\varepsilon^*e(f(x?))f(x?)ε?
    • er(f(x?))≈∣f′(x?)f(x?)ε?∣e_r(f(x^*))\approx|\dfrac {f'(x^*)}{f(x^*)}\varepsilon^*|er?(f(x?))f(x?)f(x?)?ε?

    例:x>0x>0x>0xxx 的相對誤差為 2%2\%2% ,求 xnx^nxn 的相對誤差

    解:
    er(xn)≈nxn?1e(x)xn=2n%e_r(x^n)\approx\dfrac{nx^{n-1}e(x)}{x^n}=2n\% er?(xn)xnnxn?1e(x)?=2n%

數值穩定性和減小運算誤差

  • 數值穩定性

    原始數據有擾動(即誤差),而計算中舍入誤差不增長,則稱此算法數值穩定。否則,若誤差增長則稱算法數值不穩定

  • 減小運算誤差

    • 使用數值穩定的算法
    • 避免兩個相似數相減
    • 絕對值太小的數不宜作除數
    • 避免大數小數(計算機運算位數)
      • 109+1=0.10000000×1010+0.00000000×1010=0.10000000×101010^9+1=0.10000000\times10^{10}+0.00000000\times10^{10}=0.10000000\times10^{10}109+1=0.10000000×1010+0.00000000×1010=0.10000000×1010
    • 算法的遞推性

總結

以上是生活随笔為你收集整理的数值计算方法第一章—数值计算引论的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。