You are on page 1of 10

INFORME DE LABORATORIO #03

Ejemplo 1

Crea una función expo1 que permita obtener la suma de términos de la serie de Taylor para aproximar
el exponencial de un numero real ‘x’ dado en entero:

S=1 + X +X2/2! + X3/3! +……+ Xn/n!

% Haciendo la función

function s=expo1(x,n);
s=1;
fact=1;
for i=1:n;
fact=fact*i;
s=s+x^i/fact;
end
disp(s)

>> % Ejecutando en la ventana de comandos

>> s=expo1(1,6)

2.7181

s=

2.7181

% Una variante de esta función puede ser retornado además el error


% comparado con la función expo2

function [s,err]=expo2(x,n);
s=1;
fact=1;
for i=1:n;
fact=fact*i;
s=s+x^i/fact;
end
err=abs(exp(x)-s)

>> % Invocando en la ventana de comandos

>> [sum,err]=expo2(1,6)

err =

2.2627e-04
sum =

2.7181

% Tambien se puede declarar funciones de linea

function f=fact(n);
if n==0;
f=1;
elseif n==1;
f=1;
else
f=n*fact(n-1)
end

>> % Cuyo llamado se realiza ya sea desde la ventana de comandos o desde otro programa o función
que lo requiera:

>> f=f(5)

f=

120

EJEMPLO 2 IF

% Prueba 02

n=input('ingrese numero: ')


t=rand(n);
if t>0.75;
s=0
elseif t<0.25;
s=1
else
s=1-2*(t-0.25)
end

>> prueba02

ingrese numero: 1

n=

1
s=

0.1898

>> prueba02

ingrese numero: 2

n=

s=

1.1748 0.5033

1.2620 -0.4195

>> prueba02

ingrese numero: 3

n=

s=

0.8192 -0.0025 0.1018

0.3295 0.9898 -0.2818

1.0524 0.4881 -0.4186


EJEMPLO 3 SWITCH

% Prueba03

opc=3
switch opc
case 3
disp('Mecanica')
case 4
disp('Mecanica-Electrica')
case 5
disp('Naval')
case 6
disp('Mecatronica')
otherwise
disp('Fuera de rngo ...')
end

>> prueba03

opc =

Mecanica

EJEMPLO 4 FOR

% Pureba 4
for k=1:100;
x=sqrt(k);
if x>5
fprintf('x=%5.2f , k=%3d \n',x,k)
break
end
end

>> Prueba04

x= 5.10 , k= 26

EJEMPLO 5 WHILE

m=10;
k=0;
% Calculo Numerico FIM-UNI 15
while k<=m
x=k/10;
disp([x,x^2,x^3]);
k=k+1;
end
>> Prueba05

0 0 0

0.1000 0.0100 0.0010

0.2000 0.0400 0.0080

0.3000 0.0900 0.0270

0.4000 0.1600 0.0640

0.5000 0.2500 0.1250

0.6000 0.3600 0.2160

0.7000 0.4900 0.3430

0.8000 0.6400 0.5120

0.9000 0.8100 0.7290

1 1 1
EJEMPLO 6

% Sabiendo que las coordenadas cartesianas de una circunferencia son


de la
% forma x=rcos(@), y=rsen(@), crea una funcion que se llame
% circunferencia1.m que dibuje una circunferencia y que tenga como
% parametros de entrada el angulo . La funcion tiene que tener como
% arametros de salida todos los valores de x,y .Para realizar el
programa ,
% hay que tener en cuenta que el radio pemanece cosntante y lo que va
% cambiando es el angulo @....
%
%
% SOLUCION

disp('Circunferencia1')
disp(' ')
Angulo=input('introduzca el valor del angulo (en grados): ')
Comp_x=cosd(Angulo);
Comp_y=sind(Angulo);
Resultante=[Comp_x; Comp_y;];
Comp_Res=norm(Resultante);

disp(' ')
disp('Valor de componente en x: ')
disp(Comp_x)
disp('valor de la componente en y: ')
disp(Comp_y)
disp('valor de la componente resultante: ')
disp(Comp_Res)
hold on
grid
line([-1.5,1.5],[0,0])
line([0.0],[-1.5,1.5])

title('Circunferencia1')

xlabel('Eje X')
ylabel('Eje Y')

text(Comp_x/2,-0.1,'Componente X','FontSize',7)
text(Comp_x+0.1,Comp_y/2,'Componente Y','FontSize',7)

viscircles([0,0],1,'linestyle',':');
plot([0,Comp_x],[0,0],'green','linewidth',3);
plot([Comp_x,Comp_x],[0,Comp_y],'yellow','linewidth',3);
plot([0,Comp_x],[0,Comp_y],'cyan','linewidth',3,'linestyle','--');

viscircles([0,0],1,'linestyle',':');

input('Pulse cualquier tecla para salir...')


>> % Invocando desde la ventana de comandos

>> Circunferencia1

Circunferencia1

introduzca el valor del angulo (en grados): 45

Angulo =

45

Valor de componente en x:

0.7071

valor de la componente en y:

0.7071

valor de la componente resultante:

Pulse cualquier tecla para salir...


SE TIENE SU GRAFICA CORRESPONDIENTE A LA CIRCUNFERENCIA

% 7.- Igual que el ejemplo 6, en lugar de que la funcion tenga varios


% valores de (x,y); solo tenga un valor y vaya reemplazando dichos
valores
% . La funcion se llame circunferencia2
%
% SOLUCION
%
%Resuelta en el apartado 6

% 8.- Crea un script que llame repetidas veces a el programa


circunferencia
% de forma que represente en una misma grafica 4 circunferencias
%
% SOLUCION
%

hold on
x=[-2*pi:0.001:2*pi];
y1=sqrt(1-x.^2);
Y1=-sqrt(1-x.^2);
plot(x,y1,'r',x,Y1,'r')
y2=sqrt(4-x.^2);
Y2=-sqrt(4-x.^2);
plot(x,y2,'b',x,Y2,'b')
y3=sqrt(9-x.^2);
Y3=-sqrt(9-x.^2);
plot(x,y3,'y',x,Y3,'y')
y4=sqrt(16-x.^2);
Y4=-sqrt(16-x.^2);
plot(x,y4,'g',x,Y4,'g')
grid

>> % Ejecuntando tenemos la grafica

% 9.- Crea una funcion que dibuje un cilindro y que se llame


cilindro.m
%La funcion tendra como parametros de entrada el radio , el alto y el
%angulo
% SOLUCION

function cilindro
n=input('ingrese el angulo (en grados sex): ');
y=input('ingrese el valor del radio: ');
r=input('ingrese el valor de z: ');
axis off;
mov=moviein (30);
for x=1:30;
t=linspace(n,y,r); r=sqrt(t);
cylinder(r)
shading
end
movie(mov ,60,10)

>> % Luego de invocar en la ventana de comandos

>> cilindro

ingrese el angulo (en grados sex): 40

ingrese el valor del radio: 40

ingrese el valor de z: 40
SU CORRESPONDIENTE GRAFICA

You might also like