看板 HSNU_1139 關於我們 聯絡資訊
※ 引述《cynthiaS (水似)》之銘言: 我要用c++來設計一個程式 讓使用者可以輸入一個多項式 並選擇要計算最大值還是最小值 然後程式用牛頓法找出微分後的近似解 (使用者輸入可接受的誤差範圍) 請各位神人幫幫我想想辦法啊!!! 這一題作業快比我期中考占的比例還重了 快點救我!! deadline是星期日晚上九點... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.114.217.145
aj1139:我今天聽到一個你們的(大概是博班)學長說:"那題我放棄!!" 04/25 00:16
smiletea:是說 要找最大或最小值,所以先找一次微分等於零的點 04/25 00:42
smiletea:然後用牛頓法解一次微分等於零的根嗎?? 04/25 00:42
smiletea:剛剛翻了一下課本還有問了人 牛頓法好像是在逼近根?? 04/25 00:43
smiletea:input是係數和次方嗎?? 04/25 00:44
mcjhsnu492:我們上學期有做過牛頓求解... 04/25 00:59
moon1139:我忘記牛頓法是啥了...幫不了你= =" 04/25 03:05
是沒錯 牛頓法是逼近根 所以要先把微分後的方程式寫出來 然後以牛頓法 解微分等於零的方程式 就是解這個 f'(X)=0 可是我不知道一開始要帶什麼值 應該可以先寫個函式 找出 f(X)比較接近0的解 然後再用那個值 用牛頓法逼近 應該會有很多解 所以可能要逼近很多次 然後再找所有解當中的最大or最小值 假設得到f(X1)很接近0 牛頓逼近: X2 = X1 - f'(X1)/f"(X1) (因為是解f'(X)=0 所以還要算二次微分) 然後讓電腦慢慢逼近 直到誤差在使用者定義的範圍內 我覺得應該是這樣: |f'(Xn)| < E (E是要求的誤差) 這樣不是很嚴謹 但我也想不到可以怎麼辦 所以基本上要三個函式 1.找f(X)接近0的解 可能很多個 用陣列存起來 2.用牛頓逼近 把上一個函式求出來的所有解作逼近 直到小於誤差 再把解存在另一個陣列 3.把所有逼近出來的解 帶入方程後 比較大小 然後就可以cout啦:) 但中間可能還需要三個方程式的函式f,f',f" 只是用講的很厲害 要寫出來 好像真的滿困難= = 加油吧!~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.230.112.131
aj1139:超厲害的!! 我看懂了XD 04/25 11:58
smiletea:電機系的男人!! cout是什麼??? 04/25 12:26
kingofpigs:嘿嘿就是你們的print啦 04/25 12:37