-1
matlabでプログラミングするのは初めてです。私は現在、多変数関数の重要な値を見つけて、それぞれが最小、最大、または鞍点かどうかを教えてくれるMATLABプログラムを作成しようとしています。残念ながら私は常にエラーが発生します:複数のLHS割り当ての配列にはLEX_TS_STRINGを含めることはできません複数のLHS割り当ての配列にLEX_TS_STRINGエラーを含めることはできません
何か助けになるでしょう。
はここのコードです:
function [c,d] = critcalpoints(f)
syms x y
f(x,y)=x^3-3*x^2+5*x*y-7*y^2;
gradf = jacobian(f(x,y));
hessmatf = jacobian(gradf,[x,y]);
[xcr,ycr]=solve(gradf(1),gradf(2));
H1=subs(hessmatf,[x,y],[xcr(1),ycr(1)]);
H2=subs(hessmatf,[x,y],[xcr(2),ycr(2)]);
eig(H1);
eig(H2);
c = double(eig(H1));
d = double(eig(H2));
if (c(1) > 0 && d(1) > 0) || (c(2) > 0 && d(2) > 0)
print([xcr,ycr],' is a minimum')
elseif (c(1) < 0 && d(1) < 0) || (c(2) < 0 && d(2) < 0)
print([xcr, ycr], ' is a maximum')
elseif (c(1) < 0 && d(1) > 0) || (c(1) > 0 && d(1) < 0)
print([xcr, ycr], ' is a saddle point')
elseif (c(2) < 0 && d(2) > 0) || (c(2) > 0 && d(2) < 0)
print([xcr, ycr], ' is a saddle point')
elseif (c(1)==0 || d(1)==0)
print([xcr, ycr], ' is degenerate')
elseif (c(2)==0 || d(2)==0)
print([xcr, ycr], ' is degenerate')
end