0.3
Gráficas y gráficos

En esta práctica se pretende dar a conocer algunas capacidades gráficas de Mathematica, para dibujar figuras geométricas simples, así como para representar de funciones de una y dos variables, dadas en forma explícita y paramétrica; con numerosas opciones y posibilidades.

Figuras geométricas y gráficos primitivos

Las gráficas de de ciertas curvas y  figuras geométricas conocidas se pueden obtener fácilmente. Concretamente las de una recta o de una poligonal, un retángulo, un círculo, un disco, un polígono,  un paralelepípedo, etc. Primero se obtienen y después se muestran con la sentencia Show. Veamos unos ejemplos

Clear["Global`*"]

linea1=Graphics[Line[{{1,1},{2,3}}]];

linea2=Graphics[Line[{{1,1},{2,3},{3,8},
			{4,4},{5,-10}}]];

circunferencia=Graphics[Circle[{1,1},5]];

disco=Graphics[Disk[{1,1},5]];

rectangulo=Graphics[Rectangle[{1,1},{3,8}]];

poligono1=Graphics[Polygon[{{1,1},{2,3},{3,8}}]];

poligono2=Graphics[Polygon[{{1,1},{2,3},
			  {3,8},{4,4}}]];

paralelepipedo=Graphics3D[Cuboid[{0,0,0},{2,3,3}]];

Show[linea1];

Show[linea2];

Show[linea1,linea2];

Show[circunferencia];

Parece una elipse en lugar de una circunferencia. Esto es debido a que las escalas en las direcciones horizontal y vertical son diferentes. Si se quiere otra escala hay que indicarlo con la sentencia AspectRatio, asignándole en este caso el valor 1 o Automatic.

Show[circunferencia,AspectRatio->1];

Show[disco, AspectRatio->Automatic];

Show[rectangulo];

Show[poligono1];

Show[poligono2];

Show[paralelepipedo];

Dibujo de curvas y superficies

Las sentencias Plot, Plot3D, ParametricPlot y ParametricPlot3D, seguidas de la función o funciones correspondientes y de los límites de variación de las variables (entre llaves), todo entre corchetes, sirven para dibujar curvas y superficies. Las superficies son las que llevan 3D en la sentencia. Las sentencias que empiezan por Parametric son para las curvas o las superficies que están dadas en paramétricas, las demás son para las funciones en explícitas. A lo largo de la práctica vemos ejemplos de curvas y superficies tanto en forma explícita como en  paramétrica.

Plot[Sin[x],{x,0,2 Pi}];

Plot[(x^2-4)/((x+1) (x-1) (x-3)),{x,-4,10}];

Plot3D[x^2+y^2,{x,-5,5},{y,-5,5}];

Si deseamos ver la superficie desde otro punto de vista debemos usar la sentencia ViewPoint e indicar el punto donde nos situamos (mirando hacia el origen)

Plot3D[x^2+y^2,{x,-5,5},{y,-5,5},
	ViewPoint->{7,3,0}];

Si deseamos más resolución debemos usar la sentencia PlotPoints e indicar el número de puntos de resolución (suele ponerse entre 20 y 50,  porque si se pone un número mucho mayor tarda bastante tiempo en hacer la representación)

Plot3D[x^2+y^2,{x,-5,5},{y,-5,5},PlotPoints->25,
			ViewPoint->{7,3,0}];

Plot3D[x^2-y^2,{x,-5,5},{y,-5,5},PlotPoints->20,
			ViewPoint->{7,3,0}];

Plot3D[x^2-y^2,{x,-5,5},{y,-5,5}];

Otra sentencia interesante es la que permite obtener curvas de nivel, sobre el plano XY, de una determinada superficie. Para ello debemos escribir ContourPlot

ContourPlot[x^2-y^2,{x,-5,5},{y,-5,5}];

Veamos algunas superficies más

Plot3D[(x^2+3 y^2) E^(1-x^2-y^2),
	{x,-2,2},{y,-2,2}];

Plot3D[(x^2+3 y^2) E^(1-x^2-y^2),
	{x,-2,2},{y,-2,2},
	PlotPoints->25,ViewPoint->{2,-2,0}];

ContourPlot[(x^2+3 y^2) E^(1-x^2-y^2),
	{x,-2,2},{y,-2,2},PlotPoints->25];

Se pueden representar de forma simultánea varias curvas, en tal caso se separan unas de otras con llaves como se hizo con los elementos de las matrices. Además es posible dibujarlas con colores diferentes, para ello usamos PlotStyle y RGBColor, con intensidades comprendidas entre cero y uno. Podemos usar los colores puros (uno de ellos vale 1 y los demás cero: rojo, verde y azul) o mezclas en diferentes proporciones. Por ejemplo la circunferencia, en paramétricas, puede dibujarse usando las funciones seno y coseno. Dibujaremos tres circunferencias concéntricas de radios 1,2 y 3, y diferentes colores

ParametricPlot[{{3 Sin[t], 3 Cos[t]},
{2 Sin[t], 2 Cos[t]},{Sin[t], Cos[t]}},{t,0,2 Pi},
PlotStyle->{RGBColor[1,0,0],RGBColor[0,1,0],
RGBColor[0,0,1]},AspectRatio->1];

En forma  explícita se opera de la siguiente manera:

Plot[{Sin[x],Cos[x]}, {x,0,2Pi}, PlotStyle->
{RGBColor[1,0,0],RGBColor[0,0,1]}];

Usaremos la sentencia de estilo Thickness para darle mayor grosor a la curva

Plot[Sin[x],{x,-7,7}, PlotStyle->Thickness[0.02],
                 AspectRatio->0.1];

La orden ListPlot

Para representar  gráficamente  una lista de puntos. Si las abscisas son los números 1,2,3,.. como en el primer caso no es necesario especificarlos. Si las abscisas no son los números 1,2,3... hay que escribir las coordenadas de cada punto entre llaves y separados por comas, como en el segundo caso.

ListPlot[{1,2,4,16,38},
	PlotStyle->{PointSize[0.02]}];

ListPlot[{{1.5,1},{2,2},{2.5,4},{4,16},{4.5,38}},
	PlotStyle->{PointSize[0.02]}];

Ahora ya puede continuar dibujando otras curvas y superficies.

Ejercicios

1.- Dibuje la poligonal correspondiente a las abscisas 1,2,3,4,5 y a las ordenadas correspondientes a sus datos d1, d2, d3 ,d4, dm.

2.- Dibuje la curva (d1+d2) x^3+(d3+d4)x^2- ds x,  en el intervalo [dm-3, dm+3]

3.- Escriba la orden para calcular y mostrar simultáneamente un rectángulo inscrito en un círculo de centro el origen y radio 10.

4.- Dibuje:
	un arco de circunferencia de radio 3, centrado en el punto (1/ds,1/dm); que recorra los ángulos  Pi/ds  a  Pi/2;
	
	una elipse centrada en (0,0) y de semiejes  1+1/dm  y  2+d1/dm  e inserte, en el interior,  el texto  "elipse".

5.- Cree y represente conjuntamente las parábolas:
		(-1)^i   (x-d1/dm)^2 + 1/dm ;   i=1,2,3,4.

6.- Cree y represente conjuntamente las parábolas del ejercicio anterior, pero con distintos colores, y cambiando el grosor de alguna de ellas, o presentandola segmentada.

7.- Obtenga visualmente, mediante las sentencias gráficas de Mathematica, una aproximación de la  posición y valor de un máximo de la superficie

	(x^2+y^4+d1)/E^(x^2+y^2) + d1 x/20 -d1 y/15

que esté cercano al origen. Utilice para ello, tanto la gráfica tridimensional de la función de dos variables, como las correspondientes curvas de nivel y gráfico de densidades de la misma. Utilice convenientemente las opciones  PlotPoints  y  PlotRange para controlar la resolución y el rango de las mismas.  Parta inicialmente del cuadrado  [-1,1]x[-1,1]  y disminúyalo convenientemente para mejorar la aproximación visual.