Sie sind auf Seite 1von 11

UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

Universidad del Per, DECANA DE AMRICA


FACULTAD DE INGENIERA ELECTRNICA, ELCTRICA
Y TELECOMUNICACIONES
EAP: INGENIERA ELECTRICA

Curso

Laboratorio de Mtodos Numricos

Tema

Gua 3

Profesor

Ing. Villafuerte

Alumna

Vidal Buiza Ivan Augusto 12190203

2016-1

GUA 3
Ejemplo 1
% prueba01.m
n=input('Ingrese numero de periodos=')
x=0:pi/100:2*pi*n;
y=exp(-x/10).*sin(2*x);
plot(x,y)
title('Amortiguamiento')
xlabel('Tiempo(seg)')
ylabel('Posicion (m)')
grid

Ejemplo 2
Creacin de una funcin.
% cifras.m
% Funcion que calcula para un numero entero n :
% sumcif : Suma de cifras del Numero n
% numcif : Numero de cifras del Numero n
function [sumcif,numcif]=cifras(n)
sumcif=0;
numcif=0;
while n~=0
digito=rem(n,10);
sumcif=sumcif + digito;
numcif=numcif + 1;
n=fix(n/10);
end

Ejemplo 3
Crear una funcin expo1 que permita obtener la suma de trminos
de la serie de Taylor para aproximar el exponencial de un nmero real
x dado n entero:

% expo1.m
function s=expo1(x,n)
s=1;
for i=1:n
s=s+x^i/factorial(i);
end

Ejemplo 3 (2)
Una variante de la serie de Taylor usando la funcin exp:
function [s,err]=expo2(x,n)
% expo2.m
s=1;
for i=1:n
s=s+x^i/factorial(i);
end
err=abs(exp(x)-s);

Ejemplo 4

Funciones recursivas
MATLAB permite la creacin de funciones que se llamen a si mismas
en tiempo de ejecucin para crear algoritmos potentes.
% fact.m
function f=fact(n)
if n==0
f=1;
elseif n==1
f=1;
else
f=n*fact(n-1);
end

Ejemplo 5 IF
% prueba02.m
t = rand(1)
if t > 0.75
s=0
elseif t < 0.25
s=1
else
s = 1-2*(t-0.25)
end

Ejemplo 6 SWITCH
% prueba03.m
opc=4
switch opc
case 3
disp('Electronica')
case 4
disp('Electrica')
case 5
disp('Telecominucaciones')
case 6
disp('Bio_electronica')
otherwise
disp('Fuera de Rango...')
end

Ejemplo 7 FOR
%prueba04.m
for k=1:100 % contador
x=sqrt(k); % obtiene la raz de k
if x>5, % si raz es mayor a 5
fprintf('x= %5.2f , k= %3d \n',x,k) % muestra en pantalla x y k
break % sale del lazo
end % fin del if
end % fin del for

Ejemplo 8 WHILE
% prueba05.m
m = 4;

k = 0;
while k<=m
x = k/10;
disp([x, x^2, x^3]); % imprimir una tabla de valores
k = k+1;
end

Ejemplo 9
Sabiendo que las coordenadas cartesianas de una circunferencia son
de la forma x=r*cos() , y=r*sen() crear una funcin que se llame
circunferencia1.m que dibuje una circunferencia y que tenga como
parmetros de entrada el radio y el ngulo. La funcin tiene que tener
como parmetros de salida todos los pares de valores x,y . Para
realizar el programa, hay que tener en cuenta que el radio permanece
constante y lo que va cambiando es el ngulo .
Solucin: (circunferencia1.m)
function [x,y]=circunferencia1(radio, paso)
r=radio;
fi=0;
i=0;
if paso>60, error('Angulo muy grande'), end
for fi=0:paso:360
fi2=fi*2*pi/360;
i=i+1;
x(i)=r*cos(fi2);
y(i)=r*sin(fi2);
end
plot(x,y,'o')

Ejemplo 10
Con cuantas cifras significativas aproxima 0.333 a 1/3 ?
Solucin: (ejemplo10.m)
El nmero 0.333 coincide con 1/3 en dos cifras significativas, ya que

En matlab:
for n=2:5
cif=5*10^(-n+1);
c=((1/3)-0.333)/(1/3);
if c<=cif
fprintf('numero de cifras =%2g',n)
break
end
end

Ejemplo 11
Encuentre la propagacin de errores de la siguiente frmula: H =
AeT4 con:
5.67 x 10-8, A=0.1, e=1.0, T=60020
Solucin:

| |

H
H = H (
T )

T
T
Aqu:
H
3
8
3
=4 Ae T =4 ( 0.1 ) (1.0 ) ( 5.67 10 ) ( 600 ) =4.90
T
H ( 600 )=( 4.90 ) (20 )=97.98
Error exacto:
8

H min =(0.1)(1.0)(5.67 10 ) (580 ) =641.65

H max =(0.1)(1.0)(5.67 10 ) ( 620 ) =837.82


Por lo tanto:

H =| H exact|=

H max H min 837.82641.65


=
=98.08
2
2

Este valor es muy cercano al resultado aproximado.


Ejemplo 15

Dado el siguiente nmero expresado en formato IEEE 754 de simple


precisin:
0 10011011 00000000000000000000000
A que decimal representa?
Solucin: (ejemplo15.m)
s=(1.0)*2^(301-212)

Das könnte Ihnen auch gefallen