Try   HackMD

Exam 1

考試時間: 9:00-9:50AM

請在 9:50AM 前上傳兩個 matlab m-file 至 github 並 pull request.

需有註解

Problem 1 - 暴力求根

給定一個函數 f(x) 及區間 [L,L], 試寫一 matlab 程式將其所有的根 (f(x)=0) 找出來.

  • 此函數 input 為 L, output 為所有的根.

!!指定做法!!

指定求根法如下:

  1. 先求函數實根個數及區間
    先將 [a,b] 區間分成 N 等分, 接著用中間值定理來看每個區間內有沒有函數的實根.
    Reference: Root finding-函數實根個數
  2. 在每個區間用暴力法求根
    在區間內隨機取點, 如果在取到的點其函數值夠小我們就說找到解了.

Problem 2 - 精準做圖

給定一個可微分函數 f(x) 及區間 [L,L], 試寫一 matlab 程式將其準確的畫出來.

準確 意思是要畫出 f(x) 圖形並且標出所有的局部極大/極小值 (critical points, f=0, 即可)

  • matlab 函數其 input 為 L, output 為 matlab figure.
  • 程式主結構如下:
    • 此函數內有兩個 local function, 分別為 y=f(x) 以及 y=df(x), 對應於 f(x) 以及 f(x).
function accurate_graph(L)




function y = f(x)
y = ??
end

function y = df(x)
y = ??
end

!!指定做法!!

指定作法如下:

  1. 先利用 problem 1 的暴力求根法求出函數微分 f(x)[L,L] 區間內所有的根
  2. 畫出函數圖形並在圖形上標出所有 f=0 的點
  • 上傳的程式用以下函數為例
    f(x)=xsin(x),x[L,L].