finding max and min of function graph
6 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Having trouble with last part of code: finding max and min. here is my code:
x = -10:1:10;
y = x;
[xGrid,yGrid] = meshgrid(x,y);
z = (1./((xGrid+3).^2 + (yGrid-1).^2 + 2)) + ((xGrid-yGrid) ./ ((xGrid-1) .^2 + (yGrid-2) .^2 + 4));
subplot(2,2,1)
surf(x,y,z)
title('Isometric View')
xlabel('X')
ylabel('Y')
zlabel('Z')
subplot(2,2,2)
surf(x,y,z)
az=0;
el=90;
view(az,el)
title('View Normal to X-Y Plane')
xlabel('X')
ylabel('Y')
zlabel('Z')
subplot(2,2,3)
surf(x,y,z)
view(0,0)
title('View Normal to X-Z Plane')
xlabel('X')
ylabel('Y')
zlabel('Z')
subplot(2,2,4)
surf(x,y,z)
az=90;
el=0;
view(az,el)
title('View Normal to Y-Z Plane')
xlabel('X')
ylabel('Y')
zlabel('Z')
NegFunction = @(x)(1./((x+3).^2 + (y-1).^2 + 2)) + ((x-y) ./ ((x-1) .^2 + (y-2) .^2 + 4));
[xyMaxVector,zMax] = fminsearch(NegFunction,[0,3]);
xMax = xyMaxVector(1);
yMax = xyMaxVector(2);
fprintf('The Max Value was: z(%6.3f,%6.3f) = %2.0f\n',xMax,yMax,-zMax)
Réponses (1)
Naga
le 7 Avr 2025
Hello Joseph,
It seems you're trying to find the maximum and minimum values of a function on a grid. While you've set up the plots and attempted to find the maximum using 'fminsearch' on the negative of the function, there are a couple of issues:
- The 'NegFunction' uses x and y, which are vectors, instead of defining a function that takes a single vector input [x, y]. This needs to be corrected.
- You only attempted to find the maximum using the negative of the function. You should also find the minimum directly using 'fminsearch'.
I made the suggested changes in the code below:
x = -10:1:10;
y = x;
[xGrid, yGrid] = meshgrid(x, y);
z = (1 ./ ((xGrid + 3).^2 + (yGrid - 1).^2 + 2)) + ((xGrid - yGrid) ./ ((xGrid - 1).^2 + (yGrid - 2).^2 + 4));
% Function for optimization
Function = @(v) -(1 ./ ((v(1) + 3).^2 + (v(2) - 1).^2 + 2)) - ((v(1) - v(2)) ./ ((v(1) - 1).^2 + (v(2) - 2).^2 + 4));
% Finding maximum
[xyMaxVector, negZMax] = fminsearch(Function, [0, 3]);
xMax = xyMaxVector(1);
yMax = xyMaxVector(2);
zMax = -negZMax; % Since we minimized the negative
% Finding minimum
FunctionMin = @(v) (1 ./ ((v(1) + 3).^2 + (v(2) - 1).^2 + 2)) + ((v(1) - v(2)) ./ ((v(1) - 1).^2 + (v(2) - 2).^2 + 4));
[xyMinVector, zMin] = fminsearch(FunctionMin, [0, 3]);
xMin = xyMinVector(1);
yMin = xyMinVector(2);
fprintf('The Max Value was: z(%6.3f,%6.3f) = %6.3f\n', xMax, yMax, zMax)
fprintf('The Min Value was: z(%6.3f,%6.3f) = %6.3f\n', xMin, yMin, zMin)
0 commentaires
Voir également
Catégories
En savoir plus sur Functions dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!