<dd id="fwsuh"></dd><dd id="fwsuh"></dd>


  • <rp id="fwsuh"></rp>

        <em id="fwsuh"><acronym id="fwsuh"><u id="fwsuh"></u></acronym></em>

          

        一元函數自動求解在線計算工具

        牛頓法是求解的核心方法,它的維基百科的定義為:牛頓法是一種在實數域和復數域上近似求解方程的方法。方法使用函數f(x)的泰勒級數的前面幾項來尋找方程f(x)=0的根。簡言之,牛頓法就是對x進行迭代,直至x收斂于某個很小的范圍

        所以,對于任意的一元函數,我們都可以嘗試用牛頓法來求得其近似解,當誤差小于10^-9時,或者迭代步數超過10^5時,迭代結束

        在構建求解器時,有幾個關鍵問題需要解決:解析輸入的表達式,表達函數,求導函數方程,對函數進行代入求值。其中,最優先的一個問題是:我們怎么儲存(表達)函數?

        為什么選擇這種二分表達樹表達方式?主要是因為它是樹形結構,方便遞歸處理節點,而我們之后求導函數其實就是用的遞歸思路,包括代入求值也是遞歸的思路\

        預處理表達式:首先,我們需要預處理輸入的表達式字符串。因為在數學中有一些簡略或者多余的寫法需要在此規范化。自然的輸入串經過預處理后,就應該是一個中綴的表達式字符串,這是人類能夠自然理解的表達式形式。但是為了將表達式儲存成二叉表達樹,我們還需要將中綴表達式轉換成后綴表達式

        調度場算法:度場算法基本和我們在棧 遞歸 漢諾塔文中提到的利用棧來計算表達式的方法類似。它用隊列表達輸出的后綴表達式,利用了棧來儲存操作符和函數

        構建二叉表達式樹:假設輸入表達式為:(a+b) * (c * (d+e)),經過調度場算法,我們得到a b + c d e + * *的后綴表達式。此時我們便可以利用后綴表達式的特點,快速的構建出一顆二叉表達樹來

        求值:對二叉表達樹進行代入求值的算法應該很容易就能想到。利用二叉樹的遞歸特性,根為操作符或函數,左子樹右子樹是遞歸定義。我們只需要將左右子樹的值遞歸求出,然后在進行操作符運算即可

        構建導函數樹:我們只剩下了求解導函數的步驟。這一步也是比較復雜的操作,因為導函數的規則實在是很多。首先,表達導函數應該用二叉表達樹來進行表示,因為可以直接對其進行代入求值,而且二叉表達樹具有遞歸的特性;其次,由于二叉表達樹的根節點總是操作符或函數的特性,左右子樹也是表達式,我們可以用遞歸的思路來求解導函數

        在線工具導航