domingo, 21 de marzo de 2010

Gráfica

function  f = grafica(~)

%Programa: Gráfica de un función en un intervalo dado--> grafica
%Aplicación: Dibuja la gráfica de una función dentro de la zona del plano que especifiquemos
%Variables de entrada:
%~: Esto indica que no es necesario introducir variables de entrada
%Variables de salida:
%f: La función


%Código:
%Esta parte del código nos indica la utilidad del programa y nos permite
%introducir la función deseada y los intervalos en el eje x y en el eje y que queramos


fprintf('\n Dibujo de la gráfica de una función\n\n')
f=input('Introduzca una función como cadena de caracteres =');
a=input('Introduzca el extremo inferior del intervalo en el eje x como un número real: ');
b=input('Introduzca el extremo superior del intervalo en el eje x como un número real: ');
c=input('Introduzca el extremo inferior del intervalo en el eje y como un número real: ');
d=input('Introduzca el extremo superior del intervalo en el eje y como un número real: ');

pretty (sym(f))   %Nos escribe la función de forma elegante

f=inline(f);      %Convierte la cadena de caracteres en una función
ezplot(f)         %Dibuja la función
axis([a b c d])   %Le da la medida a los ejes

%Mantiene la gráfica anterior y nos dibuja el eje x en el 0, en color rojo.
hold on
plot([a b],[0 0],'r')

%Nos muestra una leyenda, el nombre del eje x, el nombre del eje
legend(2,'Función','Eje');
xlabel('x');
ylabel('y');

%------------------------------------------------------------------------%
Un ejemplo de la aplicación del programa gráfica para la función f(x)=sqrt(x)*sin(x)-x^3+2

f=grafica
 Dibujo de la gráfica de una función

Introduzca una función como cadena de caracteres ='sqrt(x)*sin(x)-x^3+2'
Introduzca el extremo inferior del intervalo en el eje x como un número real: 1
Introduzca el extremo superior del intervalo en el eje x como un número real: 2
Introduzca el extremo inferior del intervalo en el eje y como un número real: -1
Introduzca el extremo superior del intervalo en el eje y como un número real: 2

   1/2           3
  x    sin(x) - x  + 2

f =

     Inline function:
     f(x) = sqrt(x)*sin(x)-x^3+2

lunes, 7 de julio de 2008

Fractal 0.5

He abandonado la versión 0.4 y he pasado directamente a la 0.5. La nueva versión es la 0.3, pero con un límite a la resolución para que no de problemas de falta de memoria. Además he mejorado la presentación como puede verse. En versiones siguientes me gustaría introducir parámetros en la función y que puedan variarse de forma sencilla, sin tener que escribir la formula cada vez.
Además estoy intentado que en el gráfico del fractal aparezca escrita la función y el número de iteraciones (datos que ahora hay que introducir por teclado).
Todavía no he añadido la opción de guardar los datos, porque no sé como variar el nombre. Necesito aprender un par de cosas sobre como introducir texto por teclado y luego trabajar con él.
Si alguien quiere el código, no tiene más que avisarme. Voy a añadir unas notas para que resulte sencillo ver los pasos que he programado.

sábado, 5 de julio de 2008

Fractal 0.3

He resuelto algunos problemas de la versión 0.2, como por ejemplo que el eje i estaba invertido. El siguiente paso es añadir la posibilidad de guardar los resultados para no tener que volver a calcularlo todo cada vez.
Hay un límite a la resolución máxima impuesto por el tamaño de matriz y el número máximo de variables que puede almacenar matlab. Una posible solución podría consistir en guardar en disco los resultados intermedios en vez de tenerlos almacenados en matlab durante el cálculo. Sin embargo, a la hora de representarlo, hay que ponerlo todo en una sola matriz, por lo que no serviría para evitar el límite máximo de resolución. Estoy buscando una forma de poder representarlo por partes.
También estoy tratando de poner un texto que avise cuando el programa está ejecutándose y cuando ha terminado de calcular.



jueves, 3 de julio de 2008

Fractal 0.2




La versión 0.2 ya está lista. Como puede verse en la imagen, he probado con el conjunto se Julia con c=-0,745429+0,11308i. El nuevo programa funciona de la siguiente manera. Toma una función de C en C y aplica el plano complejo en sí mismo n veces. Después de realizar las n iteraciones, asigna un color a cada punto del plano según su alejamiento de la posición inicial.



Aquí puede verse la misma función, con c=-0.7.


Y aquí la función z+z.^cos(z).

miércoles, 2 de julio de 2008

Fractal 0.1

Primeros resultados de una propuesta de programa para crear fractales a partir de transformaciones del plano complejo.


Es solo una primera versión, (ni siquiera se la puede llamar beta). Aquí puede verse una misma transformación con distinto grado de detalle:

jueves, 15 de mayo de 2008

Rompecabezas
















En la última reunión del grupo se planteó la idea de hacer un rompecabezas con fotos. Aquí está mi primera versión.
La foto se divide en cuadrados, y el usuario tiene que desordenarlos con el ratón para luego volver a ordenarlos. Las reglas son las clásicas, solo se puede mover una ficha a la posición del agujero cuando esta es adyacente al agujero.
Funciona completamente, pero de momento solamente trabaja con fotos cuya resolución sea igual a la foto que utilicé para diseñarlo (por cierto que la elección de la foto no fue muy afortunada).

sábado, 10 de mayo de 2008


Dada una función


y un conjunto de valores de x {xi} i=1,2,....,n se pide hallar el valor del parámetro k para el cual los correspondientes yi se aproximan más a números enteros.


El programa de la imagen calcula el error que se comete al aproximar los yi por enteros en función del k elegido. Para cada k, se toma como medida del error la mayor de las diferencias en valor absoluto, entre yi y el entero más próximo.

Está programado para que se pueda introducir la función f(x,k), los valores xi así como el intervalo en el que se debe buscar k.

Podeis ver el código en esta dirección:
o mandadme un email y os lo paso.