1
我見過matlab中fsolve的幾個例子,但似乎無法找到任何顯示如何以矩陣形式傳遞參數的例子。FSolve矩陣形式的聯立方程與matlab
這是我的代碼。
[A,b] = equationsToMatrix(eq1,eq2)
X0 = [0 0]
fsolve([A,b], X0)
這裏是輸出
eq1 = - sx - sy/2 == 5
eq2 = - (3*sx)/2 - (3*sy)/2 == 9
A =
[ -1, -1/2]
[ -3/2, -3/2]
b =
5
9
X0 =
0 0
Error using lsqfcnchk (line 109)
If FUN is a MATLAB object, it must have an feval method.
Error in fsolve (line 198)
funfcn = lsqfcnchk(FUN,'fsolve',length(varargin),funValCheck,gradflag);
Error in SolveTesting (line 70)
fsolve([A,b], X0)
正如你可以看到我已經有了方程系統在解決一個很好的形式,爲什麼不matlab的接受呢?我也不明白x0參數的意義。我提供了一個方程組,所以爲什麼我需要一個起點?
你需要提供一個「球場」的起點,這樣算法不會被遠離答案的巨大錯誤所迷惑。第一個參數應該是一個評估函數(它會返回距離答案的距離)。你不能只傳遞一個矩陣。但是,您可以創建一個匿名函數並將其包含在其中。 – paddy
閱讀http://www.mathworks.com/help/optim/ug/fsolve.html – paddy
不應該x0有4個變量呢?系統中兩個未知數的最小/最大值?我當然引用了幫助文檔,但我不理解它。這些例子都直接提供被評估的方程。由於它們來自其他代碼的結果,我無法對方程進行硬編碼。 –