運算子 > 微積分運算子 > 範例:梯度運算子
範例:梯度運算子
定義函數 f
按一下以複製此運算式
使用梯度運算子接收 f 的偏導數向量:
按一下以複製此運算式
定義向量函數並依向量 x 計算函數 f 的梯度。
按一下以複製此運算式
按一下以複製此運算式
在此範例中,設定所有陣列之起始索引的 ORIGIN 設定 0。
f 中具有最大下標的變數是 x2 。Mathcad 會假設有三個變數:x0x1x2。結果會產生包含三個值的梯度向量,含這些變數的偏導數。如果 x0x1 未出現在 f 中,Mathcad 仍會傳回包含三個值的向量,但對應於遺失變數的項目會設為 0。
對於在 f 中出現的最大下標 n,Mathcad 會假設 n + 1 變數、x0 x1、...xn,並傳回長度 n + 1 的向量。
若以數值方式定義 x,則可使用等號 = 計算梯度。Mathcad 會以 x 的值計算梯度並傳回數值向量,代表點 x 的梯度。x 的長度必須大於顯示在 f 中的最大下標,且 Mathcad 會傳回具長度(x) 項目的梯度。
在以下範例中,x0x1 是出現在運算式中出現的唯一變數,Mathcad 會採用有關 x0x1 的偏導數,然後傳回兩個值的向量。
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
但是,如果您將 x 定義為三元素向量,Mathcad 會假設有其他不會出現在運算式中的變數 x2。結果為三元素向量。
按一下以複製此運算式
按一下以複製此運算式
使用梯度運算子搭配 genfit 函數
梯度運算子在設定 genfit 函數的引數時尤其有用,可讓一般非線性函數適合資料集。
針對下列範例,清除 x 的值:
按一下以複製此運算式
使用下表中的資料。
按一下以複製此運算式
第一欄包含資料的 x 值,第二欄包含 y 值。
按一下以複製此運算式
按一下以複製此運算式
依下列格式的函數為數據建模:
按一下以複製此運算式
在此處,a1a2a3 是在 a 向量中包含的未知參數
您可以依下列方式呼叫 genfit 以為數據建模:
按一下以複製此運算式
在此運算式中
XY 是包含數據之 x 值及 y 值的向量。
guess 是參數初始估值的向量。
F 是一個向量,其第一個項目是模型函數 f(x, a),其剩餘的項目是 f 的偏導數,相關於未知參數。
使用梯度運算子與 stack 函數建立向量 F
按一下以複製此運算式
按一下以複製此運算式
stack 函數會將模型函數 f 置於梯度運算子所建立之偏導數向量之上。
接下來,建立參數的估值向量。
按一下以複製此運算式
套用 genfit 如下:
按一下以複製此運算式
最適合的參數為:
按一下以複製此運算式
按一下以複製此運算式
這是否有幫助?