透過 MCP 連接 →

輸入計算

數學公式

廣告

結果

使 f(x) = 0 的根 x
0.73908513321516
Converged
實際迭代次數 5
殘差 f(x) 0.000000000000003
方法 免導數牛頓法(Steffensen 型)

這個計算器的功能

這個工具會求出方程式的根——也就是讓 \(f(x) = 0\) 成立的 \(x\) 值——所採用的是免導數牛頓法,又稱為 Steffensen 迭代法。傳統牛頓法需要解析的一階導數 \(f'(x)\);而此變體則改用「向前差分」來估算斜率,整個過程只需計算函數值,因此你完全不必動手求導。它是一套純粹的數學工具,適用於任何單變數實函數。

使用方式

f(x) 欄位中以變數 \(x\) 輸入你的函數。可使用 + - * / ^、括號、常數 pie,以及常見函數:sin、cos、tan、asin、acos、atan、sinh、cosh、tanh、exp、ln、log、log10、sqrt、abs。三角函數一律以弧度(radian)計算。接著設定初始猜測值 x0(結果會受其影響)、選擇最大迭代次數 n,即可讀出收斂後的根、殘差 \(f(x)\),以及實際所需的迭代次數。

公式說明

迭代更新式為 $$x_{n+1} = x_n - \frac{f(x_n)^2}{f\!\left(x_n + f(x_n)\right) - f(x_n)}$$ 它源自標準的牛頓步 \(x_{n+1} = x_n - f(x_n)/f'(x_n)\),其中 \(f'(x_n)\) 以步長 \(h = f(x_n)\) 的向前差分來近似。將這個估算值代入後,便得到上方的公式。在單根附近,它的收斂速度大致為二次(quadratic),與真正的牛頓法相當,卻只用到函數值。

曲線 f(x) 與 x 軸相交,迭代點收斂到根
每個斯特芬森步驟都用割線斜率向 f(x)=0 的根逼近。

實例演練

以 \(f(x) = x - \cos(x)\)、\(x_0 = 1\) 為例:第 1 次迭代得 \(f(1) = 0.45970\),探測點 \(f(1.45970) = 1.34861\),分母為 \(0.88891\),因此 $$x_1 = 1 - \frac{0.45970^2}{0.88891} = 0.76224$$ 迭代很快便收斂到 \(x \approx 0.7390851332\),也就是滿足 \(x = \cos(x)\) 的數值(即「Dottie 數」),此時 \(f(x) \approx 0\)。

迭代求根迴圈的流程圖
迭代會一直重複,直到 x 的變化非常小或達到最大迭代次數。

常見問題

為什麼有時無法收斂?初始猜測值選得不好可能導致發散,或落到另一個根上;若分母 \(f(x+f(x)) - f(x)\) 變為零,方法會安全地停止。此時請換一個 x0 再試。

角度是用度還是弧度?使用弧度(radian),這是標準的數學慣例。如有需要,可用 x*pi/180 進行換算。

需要先求導數嗎?不需要——這正是本方法的重點。它僅憑函數值就能估算斜率。

最後更新: