2013-10-16 123 views
-2

如何用函數作爲參數,最簡單地求解方程= 0?在Matlab中,如何求解一個函數中的方程?

帶有一個輸入變量的函數叫做potd(angle),帶有一個輸出變量potNRGderiv。我想:

SYMS X

解決(POTD(X))

這給了我錯誤:未定義功能 '信德' 類型 '符號' 的輸入參數。

你有什麼想法嗎?提前致謝。

回答

0

solve這裏是錯誤的途徑,除非你的函數可以被重寫爲一個簡單的等式。 solve使用muPAD functions這就是爲什麼你可以做solve(sin(x))但不是solve(sind(x))。當然,你可以自己做轉換。

如果你的函數較爲複雜,或者你不想改寫它,看看fsolve

x = fsolve(@myfun,x0)

其中X0是你最初的猜測 - 即myfun(X0)接近於0 - 和myfun是一個函數,它接受x並返回單個輸出。根據你的功能的不同,你可能需要使用optimoptions(公差,步長等)來調整選項以獲得好的結果。