Pequeños ejemplos en MATLAB

Anuncio
%
%
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)
Descargar