Advertisement
Gigli-0neiric

franki

Jan 31st, 2016
326
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 1.63 KB | None | 0 0
  1. function franki(c)
  2.  
  3. if nargin == 0
  4.     c = 3;
  5. end
  6.  
  7. ezsurfc(@(x,y) x.^2+y.^3-c*(x-y^2)); hold on;
  8.  
  9. clc; format compact;
  10. disp('f ist auf ganz R^2 definiert.')
  11.  
  12. syms x y
  13. f = x.^2+y.^3-c*(x-y^2);
  14. fx = diff(f,x); fy = diff(f,y);
  15. sln = solve(fx,fy);
  16.  
  17. for i=1:numel(sln.x)
  18.     hesse = hessian(f, [x,y]);
  19.     hesse = subs(hesse, y, sln.y(i,1)); hesse = subs(hesse, x, sln.x(i,1));
  20.     eigen = double(eig(hesse));
  21.    
  22.     if((all(eigen>0)))
  23.             disp([' Alle Eigenwerte sind positiv --> Minimum im kritischen Punkt: ','(',num2str(double(sln.x(i,1))),'|',num2str(double(sln.y(i,1))),'|',num2str(double(sln.x(i,1).^2+sln.y(i,1).^3-c*(sln.x(i,1)-sln.y(i,1)^2))),')'])
  24.             hdl(1) = plot3(double(sln.x(i,1)),double(sln.y(i,1)), double(sln.x(i,1).^2+sln.y(i,1).^3-c*(sln.x(i,1)-sln.y(i,1)^2)), 'gx');
  25.     elseif((all(eigen<0)))
  26.             disp([' Alle Eigenwerte sind negativ --> Maximum im kritischen Punkt:  ','(',num2str(double(sln.x(i,1))),'|',num2str(double(sln.y(i,1))),'|',num2str(double(sln.x(i,1).^2+sln.y(i,1).^3-c*(sln.x(i,1)-sln.y(i,1)^2))),')'])
  27.             hdl(3) = plot3(double(sln.x(i,1)),double(sln.y(i,1)), double(sln.x(i,1).^2+sln.y(i,1).^3-c*(sln.x(i,1)-sln.y(i,1)^2)), 'bx');
  28.     else
  29.             disp([' Kritischer Punkt:  ','(',num2str(double(sln.x(i,1))),'|',num2str(double(sln.y(i,1))),'|',num2str(double(sln.x(i,1).^2+sln.y(i,1).^3-c*(sln.x(i,1)-sln.y(i,1)^2))),')'])
  30.             hdl(2) = plot3(double(sln.x(i,1)),double(sln.y(i,1)), double(sln.x(i,1).^2+sln.y(i,1).^3-c*(sln.x(i,1)-sln.y(i,1)^2)), 'rx');    
  31.     end
  32.    
  33. end
  34.     legend(hdl, 'Minimum', 'Maximum', 'Sattelpunkt')
  35.    
  36.     hold off;
  37.  
  38. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement