% Partielle afledede. x-kurver, y-kurver, og tangentplanen til z=f(x,y).

% Eksempel
% Som eksempel tager vi udgangspunkt i funktionen
% f(x, y) = x^3  + y^3
% Vi ønsker at konstruere tangentplanen til funktionen i punktet P(-2, 2, 0)

%% Vi tegner først grafen for funktionen

syms x
syms y

xmax = 5;
ymax = 5;
zmax = 300;

f = x^3 + y^3;
ezsurfc( f, [-xmax, xmax, -ymax, ymax] );

%% Vi betragter x-kurven: 
% x-kurven hørende til y=2 er givet ved skæringen mellem grafen for f og 
% planen y=2

hold on
ezsurfc( f, [-xmax, xmax, -ymax, ymax] );

x1 = [-xmax xmax xmax -xmax];
y1 = 2*ones(1,4);
z1 = [-zmax -zmax zmax zmax];

fill3( x1, y1, z1, 'b' );
hold off

axis( [-xmax, xmax, -ymax, ymax, -zmax, zmax] )

%% En parameterfremstilling for skæringskurven er givet ved (x,2,f(x,2))

ezsurf( 'x', @(x,y) 2, @(x,y) f(x, 2), [-xmax, xmax, -ymax, ymax] )

%% Vi betragter y-kurven
% y-kurven hørende til x=-2 er givet some skæringen mellem grafen for f 
% og planen x=-2

hold on
ezsurfc( f, [-xmax, xmax, -ymax, ymax] );

x2 = -2*ones(1,4);
y2 = [-ymax ymax ymax -ymax];
z2 = [-zmax -zmax zmax zmax];

fill3( x2, y2, z2, 'b' );
hold off

axis( [-xmax, xmax, -ymax, ymax, -zmax, zmax] )

%% En parameterfremstilling for skæringskurven er givet ved (-2,y,f(-2,y))
% Vi ser nu på grafen for z=f(x,y) sammen med plottet for  x-kurven og 
% y-kurven.

hold on
ezsurf( 'x', @(x,y) 2, @(x,y) f(x, 2), [-xmax, xmax, -ymax, ymax] )
ezsurf( @(x,y) -2, 'y', @(x,y) f(-2, y), [-xmax, xmax, -ymax, ymax] )
hold off

%% Vi finder nu tangentlinjen til x-kurven for y=2 i punktet (-2,2,0). 
% Lader vi g(x) = f(x,2) har tangentlinjen hældningen g'(-2). 
% Det ses let at g'(x) = 3x^2 
% så g'(-2) = 12. Tangentlinjen er derfor givet ved:
% (-2,2,0) + t*(1,0,12).

hold on
ezsurf( 'x', @(x,y) 2, @(x,y) f(x, 2), [-xmax, xmax, -ymax, ymax] )
ezsurf( @(x,y) -2, 'y', @(x,y) f(-2, y), [-xmax, xmax, -ymax, ymax] )

ezplot3( '-2 + t', '2', 't*12', [-xmax xmax] );
hold off

axis( [-xmax, xmax, -ymax, ymax, -zmax, zmax] )

%% Tilsvarende finder vi tangentlinjen h�rende til y-kurven for x=-2: 
% (-2,2,0) + t*(0,1,12).

hold on
ezsurf( 'x', @(x,y) 2, @(x,y) f(x, 2), [-xmax, xmax, -ymax, ymax] )
ezsurf( @(x,y) -2, 'y', @(x,y) f(-2, y), [-xmax, xmax, -ymax, ymax] )

ezplot3( '-2 + t', '2', 't*12', [-xmax xmax] );
ezplot3( '-2', '2 + t', 't*12', [-xmax xmax] );
hold off

axis( [-xmax, xmax, -ymax, ymax, -zmax, zmax] )

%% Tangentplan
% Tangentplanen for z = f(x,y) i (-2,2,0) er per definition givet som 
% planen, der udspændes af de to tangentlinjer. Lad os se om det stemmer 
% med formlen for tangentplanen. Jvf. formlen er tangentplanen givet ved:
% z = 12*(x+2) + 12*(y-2)

hold on
ezsurfc( '12*(x+2) + 12*(y-2)', [-xmax, xmax, -ymax, ymax] )

ezplot3( '-2 + t', '2', 't*12', [-xmax xmax], 'animate' );
ezplot3( '-2', '2 + t', 't*12', [-xmax xmax], 'animate' );
hold off

axis( [-xmax, xmax, -ymax, ymax, -zmax, zmax] )


%% Eksempel 2
% Vi har set at funktionen 
% z = 5 - 2x^2 - y^2
% har tangentplanen
% z - 2 = -4(x - 1) - 2(y - 1)
% i punktet P(1,1,2). Lad os visualisere det grafisk:

hold on
ezsurfc( '5 - 2*x^2 - y^2', [-1 4, -1, 4] );

ezsurfc( '2 - 4*(x-1) - 2*(y-1)', [-1 4, -1, 4] );
hold off
