0
我對Matlab完全陌生,而且我的代碼出現了一些問題。在Matlab中使用'fsolve'在數值上查找最小化方法
我需要使用'fsolve'來找到非線性優化問題的最小值,但是我無法使它工作。 我一直在使用來自mathworks的'非線性系統解決過程'部分。
我的代碼如下:
function F = myfun(x)
F = [4*x(4) + 2*x(1) - x(3)*(2*x(1) + 4) + 4*x(1)*(x(1).^2 + x(2) - 11) + 2*x(2).^2 - 14;
x(3) - 10*x(4) + 2*x(2) + 4*x(2)*(x(2).^2 + x(1) - 7) + 2*x(1).^2 - 22;
x(2) - (x(1) + 2).^2;
4*x(1) - 10*x(2);];
x0 = [-5;-5];
options = optimoptions('fsolve','Display','iter');
[x,fval] = fsolve(@myfun,x0,options);
end
凡說;分配給x的值似乎未被使用以及;沒有足夠的輸入參數。但是,根據數學工作頁面,我完成了與他們完全相同的工作,所以我現在有點失落。
功能'F = myfun(x)的'應該只包含了'F = [...]'一部分。它是一個函數,它接受一個向量'x'並返回成本函數的值。最後三行在調用fsolve之前定義了一個初始點x0和一些選項。這應該發生在函數之外。否則,該函數將自行調用。製作一個包含最後三行的腳本並查看它的功能。 – Florian