domingo, enero 21, 2007

Graficando en 3D

Buen día, el día de hoy un pequeño tutorial de graficación en 3D, para poder darle seguiemiento se puede usar cualquiera de estos programas: Octave y Matlab. Ambos multiplataforma, pero con unos cuantos miles de pesos de diferencia ;)

El código es el siguiente:

% Generamos el intervalo de interes:
x = [-10:0.1:10];
y = x;

% Generamos el mayado en los ejes X y Y:
[X, Y] = meshgrid(x,y);

% Escribimos la función de Z
% En este caso:
% Z=(5*(X^2)+20*(Y^2))/2;
Z=(5*(X.^2)+20*(Y.^2))/2;

%GRAFICAMOS:
mesh(X,Y,Z)
%FIN

En Matlab se obtiene una gráfica como la siguiente:



















Ahora bien, se tiene que tener las siguientes consideraciones:
  • En ocasiones se pueden tener números complejos al realizar raices (por obvias razones), pues bien, a la función que se le vaya a aplicar raíz, utilizar la función abs() y así evitaremos su evaluación en la parte negativa de la función (donde la función va dentro de los paréntesis).

Un ejemplo sería:

Z = ( abs(X.^2+Y.^2) ).^(1/2);




















  • Uno puede tener el intervalo que uno guste para su graficación, cambiando primer linea de código, por ejemplo, si me interesa de -20 hasta 30, la instrucción sería algo como esto:
x = [-20:30];

%O también se puede:

x = [-20:0.1:30];

  • Si observan, en el primer caso no le puse el “0.1” entre el -20 y el 30, por lo tanto tendrá menos resolución que el ejemplo anterior, así que pueden ustedes establecer de cuanto en cuanto se incrementa (en este caso de 0.1 en 0.1) poniendo algún valor o dejar que se incremente de 1 en uno obteniendo menos resolución (que en algunos casos no es relevante).
  • Por otro lado, también se debe observar que cuando se quiera multiplicar un vector por otro vector, o un vector al cuadrado, raiz, etc. Se debe utilizar un punto antes de la operación de interés, solo no aplica cuando un vector se multiplica por una constante o si se multiplica una constante por otra constante. Debido a que si no se le pone el operador punto se hace una multiplicación vectorial, y no valor por valor del vector como uno imagina.
  • Para aquellos que grafiquen en Octave observaran que la imagen esta un poco cambiada a la mostrada aquí, pero es un pequeño costo que se debe pagar en lugar de los miles de pesos :D
  • Otra observación es que en la imagen ya le puse título, y nombres a los ejes.

1 comentario:

llq dijo...

Possibly the most amazing blog that I read all year vintage wedding!?!