% Koordinatentransformation symbolisch
close all; clear; clc;

%%  Funktion in kartesischen Koordinaten --> Funktion in Polarkoordinaten
syms x y r phi
assume(r,'positive'); assume (phi, 'real')
assume(x, 'real'); assume (y,'real'); 

% f(x,y) = x^2+y^2;
f(x,y) = 5*x^2+3*y^2;

xx(r,phi) = r*cos(phi);
yy(r,phi) = r*sin(phi);

fr(r,phi) = f( xx(r,phi), yy(r,phi) );
fr = simplify(fr);

%% Koordtrafo als Abb. von R^2 in R^2
trafo = [xx, yy]                       % Abb. (r,phi) --> (x,y)
trafo_jac = jacobian(trafo)

trafo_det = simplify(det(trafo_jac))

[X,Y] = solve(trafo == [x,y],[x,y])     % ergibt natürlich Abb. (r,phi) --> (x,y)


[R,PHI] = solve(trafo == [x,y],[r,phi]) % inverse Abb. (x,y) --> (r,phi)

%%