% % Pequeños ejemplos en MATLAB ___________________________ % 1. Cálculos sencillos 23.45 + 1.67*sqrt(32.74) / (1 + exp(-2)) % 2. Cálculo de area y volumen de la esfera r = 17.4; area = 4*pi*r^2 volumen = 4/3*pi*r^3 % 3 Hacer una pequeña tabla y plotear la curva x = 0:6 , y = sin(pi*x/6) , plot(x,y) % 4 Dibujar dos parábolas x = -10:10; y = x.*x - 100; f1 = 0.2*y; f2 = 0.5*y; plot(x,f1,x,f2), title('Dos Parabolas') % 5 Escribir vectores usando operaciones elemento a elemento x = [0.1 0.6 log(3) sqrt(2) 3*pi/4] f=7*x.*exp(-x) g=x.^2+f./x plot(x,f,'o',x,f,x,g) resultado = [x' f' g'] % Tabula el resultado en % tres columnas % 6 Una espiral dada en forma parametrica t = 0:0.2:30; x = t.*cos(t); z = t.*sin(t); plot(x,z); title('Espiral') % 7 Otras funciones MATLAB útiles y = rand(1,7), plot(1:7,y,'x') ymax = max(y) s = sum(y) y = round(100*y) z = sort(y) zz=fliplr(z) % 7 valores %al azar entre 0 y 1 % Maximo de las componentes de y % Suma de componentes % Ahora y es un vector de enteros % entre 0 y 100 % Ordena el vector en forma creciente % Da vuelta el vector (flipud lo da % vuelta en vertical) % 8 Estrellas : se plotean 100 estrellas y 400 puntos al azar xs = rand(1,100); ys = rand(1,100); xd = rand(1,400); yd = rand(1,400); plot(xs,ys,'*',xd,yd,'.');title('Estrellas en el cielo') clear % Vacía todas las variables % 9 Circulo : Dibujar un circulo xc=3; yc=-3; r=6.5; % Centro n = 50; k=0:n; fi=2*pi*k/n; x=xc+r*cos(fi); y = yc+r*sin(fi); plot(xc,yc,'x',x,y); axis([-5 10 -10 6]), axis equal; grid y radio % 10 Serie, ejemplo con loop while % Calculo de la suma de 1 - 1/4 + 1/9 - 1/16 + 1/25 - 1/36 + ..... s=0;k=1; term=1; p=1; while abs(term)>1e-5 s=s + term; k= k + 1; p= -p; term= p / k^2 ; end nterm = k , sum = s, sumexacta=pi^2/12, diff=sum-sumexacta % 11 Factorial, ejemplo de loop for % n! = 1*2*3*4*.....*n , aproximación de Stirling f= 1; for n = 1:7 f=f*n, s = exp(-n)*n^n*sqrt(2*pi*n) end % 12 Stirling , lo mismo que 11 pero con vectores fac=[]; stirl=[]; % Se crean vectores vacíos f=1; for n=1:10 f=f*n; fac=[fac; f]; % Construye el vector f s=exp(-n)*n^n*sqrt(2*pi*n); stirl=[stirl; s]; end fac, stirl disp(' n! Aproximac. de Stirling ') format long, [fac stirl] disp('Diferencia en porcentaje'), format short, errel=100*(stirl-fac)./fac % 13 Una sucesión numérica clásica % Tome un entero. Si es par se divide entre 2, si es impar se % multiplica por 3 y se suma uno y se repite n= input('Un entero, por favor : ') ; % Tratar por ej. % n = 7 , n= 107 while n > 1 if rem(n,2)==0, n = n/2, else n = 3*n+1, end ; end % 14 Como el anterior pero con vectores y ploteo del resultado n= input('Un entero, por favor : ') ; % Tratar por ej. % n = 7 , n= 107 nt = n; while n > 1 if rem(n,2)==0, n = n/2, else n = 3*n+1, end ; nt=[nt n]; end nt, plot(nt) % 15 Raíz cuadrada mediante iteración format long c= input('Un entero positivo : '); if c<=0, break, end x=c; k = 0; relf= 1; while relf>1e-12 xny=0.5*(x+c/x); relf=abs( (xny-x) / xny) ; k=k+1;x=xny; end raiz=x, ktot=k format short % 16 Un sistema de ecuaciones lineales A = [ 2 2 3 -1 0 3 1 2 4 -2 3 -2 1 1 -2 -3] b = [5 8 4 12]' x= A\b % La solución de Ax = b bc = A*x % Chequeo de la solución % 17 Cuadrado mágico n=input('n= '); A = magic(n) colsum = sum(A), filasum = sum(A') diagsum = sum(diag(A)) % Para chequear la otra diagonal damos vuelta la matriz Aud = flipud(A), diagsum2 = sum(diag(Aud)) mesh(A) % 3-D plot de la matriz % 18 Matriz tridiagonal y su inversa n = 7 ; A = -2*eye(n); for i=1:n-1, A(i+1,i)=1; A(i,i+1)= 1; end A flops(0); C=inv(A) nflops=flops % 19 Plot tridimensional xv=-6:6; yv=-5:7; [x,y]=meshgrid(xv,yv); z=x.*exp(-0.1*(x.^2+y.^2)); mesh(z); figure % Crea otra figura para la nueva grafica contour(x,y,z,10)