trying to find all critical points where gradient f = 0 but am getting an error.
3 次查看(过去 30 天)
显示 更早的评论
This is what my code looks like right now. I am getting an error with the 'Real' part of my code with it saying that it is invalid.
%Storing the function f and g
syms w x y z;
f(w,x,y,z) = 2.0*w*x - 4.0*y - 5.0*w*y + 4.0*y*z + w^2 + 4.0*z^2;
g(w,x,y,z) = 0.4723*w*x + 0.6455*w*y + 0.1187*x*y + 0.8042*w^2 + 0.08831*x^2 + 0.2568*y^2 + 0.06482*z^2;
%Getting the derivatives of both functions
Dfw = diff(f,w);
Dfx = diff(f,x);
Dfy = diff(f,y);
Dfz = diff(f,z);
Dgw = diff(g,w);
Dgx = diff(g,x);
Dgy = diff(g,y);
Dgz = diff(g,z);
%Finding All Critical points by finding where gradient f is zero
[wSols, xSols, ySols, zSols] = solve([Dfw == 0, Dfx == 0, Dfy == 0, Dfz == 0], [w,x,y,z],'Real', 'true')
0 个评论
采纳的回答
Walter Roberson
2019-11-22
Use 'Real', true instead of 'Real', 'true'
4 个评论
Walter Roberson
2019-11-22
There would have to be a subexpression with degree 3 or higher for the partial derivatives to be non-linear, so having only one solution is expected for these.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Linear Algebra 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!