График полярного контура в Maxima

Как я могу сделать график полярного контура в Maxima? Учитывая такое выражение, как

exp(-r) * cos(phi)

Я хотел бы построить контуры в плоскости xy, которые имеют одинаковое значение выражения во всех точках вдоль контура.

я пробовал

draw3d(cylindrical(exp(-r) * cos(phi), r, 0, 5, phi, 0, 2*%pi), contour=map))

но cylindrical отображает r как функцию z и phi, а не z как функцию r и phi. Было бы неплохо не конвертировать вручную в декартовы координаты.


person 1''    schedule 18.09.2013    source источник


Ответы (2)


contour_plot(exp(-r)*cos(phi), [r,0,2], [phi, 0, 2*%pi], [transform_xy, polar_to_xy],
[gnuplot_preamble, "set cntrparam levels 10;"]);

Опция polar_to_xy интерпретирует первые две переменные как расстояние от оси z и азимутальный угол.

person Fred Senese    schedule 08.12.2014

В чем проблема использовать что-то вроде

draw3d(explicit(20*exp(-x^2-y^2)-10,x,0,2,y,-3,3),
   contour_levels = 15,
   contour        = map,
   surface_hide   = true) ;

Я думаю, что в таком случае это просто сделать.

person nicoguaro    schedule 02.04.2014
comment
Итак, вы правы, всегда можно преобразовать в декартовы координаты, а затем построить график, используя explicit. Мне просто было интересно, есть ли лучший способ. - person 1''; 02.04.2014
comment
Вы можете спросить непосредственно у Марио (программист Draw Package), может он знает способ получше. - person nicoguaro; 04.04.2014