1
我努力使自己的功能的MATLAB來解決兩個非線性方程的系統,同時採用了嵌套函數分享一些一些參數,這裏是一個示例代碼:「輸入參數不足」。使用fsolve與嵌套函數時
function y=solve(a,x0)
a;
y=fsolve(nle,x0); % this is line 3
function f=nle(x)
f(1)=x(1)-a*x(1)^2-x(1)*x(2); % this is line 6
f(2)=2*x(2)-x(2)+3*x(1)*x(2);
end
end
這裏a
是我想從命令行傳遞給函數的參數,x0
是fsolve
的起點。
然而,當我打電話在MALAB功能指定a=4
和x0=[1 1]'
後,它給了我下面的錯誤:
Error using solve/nle (line 6)
Not enough input arguments.
Error in solve (line 3)
y=fsolve(nle,x0);
我爲MATLAB相當新手,有誰能夠告訴我在哪裏,我在做錯誤?
在此先感謝。
編輯: 我試圖用一個函數代替nle
處理@nle
,但似乎別的東西出了問題:
Undefined function 'fsolve' for input arguments of type 'function_handle'.
Error in solve (line 3)
y=fsolve(@nle,x0);
似乎並沒有什麼意義,因爲我查了文檔fsolve
和它說,它確實應該使用的函數處理有...
感謝安德烈亞斯,我試過了,但似乎還有別的錯誤:它說:「未定義功能‘fsolve’類型‘function_handle’ 錯誤解決(3號線) Y = fsolve的輸入參數(@nle, X0);」 – Vokram
嗯,我的Matlab幫助說fsolve是在優化工具箱中。難道是這樣,你沒有安裝這個工具箱? (不幸的是,Matlab基礎包中的類似命令fzero僅用於標量變量)。 –
你是對的...我嘗試了一個非常簡單的函數,它說fsolve是未定義的...似乎在我們實驗室中的版本是教室版本,因此是非常原始的。非常感謝! – Vokram