--- title: 數學軟體實作 - Rounding error tags: 2020 Fall - 數學軟體實作 GA: G-77TT93X4N1 --- # Rounding error, machine epsilon * [Te-Sheng Lin - 用電腦算極限](https://teshenglin.github.io/post/2019_limit_evaluate/) * [Te-Sheng Lin - 用電腦算微分](https://teshenglin.github.io/post/2019_derivate_evaluate/) --- 要在matlab顯示雙精度數值可用以下指令: ```matlab= format long ``` --- ## Assignment 1 試寫一`matlab`程式求 machine epsilon --- ## 數值估計 Harmonic series 考慮調和級數([Harmonic series](https://en.wikipedia.org/wiki/Harmonic_series_(mathematics))) $$ \sum^{\infty}_{n=1} \frac{1}{n} $$ 是否能以程式判斷其收斂或發散? 如果我們以電腦完全依照這級數一項一項做加法, 則一定會收斂到某個數字. 因為可以將此級數拆解為 $$ \sum^{10^{16}}_{n=1} \frac{1}{n} + \sum^{\infty}_{n=10^{16}+1} \frac{1}{n} $$ 後面那個級數裡的每一項都小於 machine epsilon, 所以當他們被加進級數和時會沒有任何作用. 因此若以程式將此級數一項一項做加法, 一定會不大於前面那個級數和. #### Remark: $$ \sum^{N}_{n=1} \frac{1}{n} \approx \int^N_1\frac{1}{x}\,dx = \ln(N) $$ ### Rules 1. 絕對不可用程式**判斷**函數極限存在與否/數列或級數收斂與否 2. 可以用程式**猜測**函數極限存在與否/數列或級數收斂與否 * 接著以數學證明 * 若極限存在/數列或級數收斂 -> 以程式逼近此極限值 --- ## Assignment 2 - Estimation of harmonic series 在 [Matlab-03](https://hackmd.io/@teshenglin/ms_matlab_03) 我們寫過一個函數, `input` 為 $x$, `output` 為 $N$ 使得 $$ S_N = \sum^{N}_{n=1}\frac{1}{n}> x. $$ * 試計算出此程式所能運作最大的 $x$, 以及最大的 $N$, 使得使用者在 10 分鐘內可得知答案. * 修改你的註解及程式碼. * 約略估計值即可, 不需完全準確. ---