Вы находитесь на странице: 1из 21

UNIVERSIDAD DE LAS FUERZAS

ARMADAS ESPE

INGENIERÍA EN ELECTRÓNICA
AUTOMATIZACIÓN Y CONTROL

DEBER

Deber No. 1

Alumno:
Miguel Alfredo Espinoza Castro

Profesor:
Ing. Patricio Pugarin

NRC:
1113

21 de noviembre de 2017
1. Ejercicios
Latex, Programación Matlab, Ecuaciones no lineales

1. EJERCICIO: Escribir un programa en Matlab que le pida al usuario un número entero


positivo menor que un millón (1000000) y devuelva a pantalla el número e indique si es par
o impar.

Código en Matlab
function a = e j e r c i c i o 1 ( b )
% Programa que p e r m i t e i n g r e s a r un numero menor que un m i l l o n
% y d e v u e l v e en p a n t a l l a e l numero e i n d i c a n d o s i e s par
% o impar
i f b >= 1000000
disp ( ’ El numero i n g r e s a d o e s mayor que un m i l l o n ’ ) ;
else
x=mod( b , 1 ) ;
i f x==0
a=rem( b , 2 ) ;
i f a==0
disp ( ’ El numero e s menor que un m i l l o n y e s par ’ ) ;

else
disp ( ’ El numero e s menor que un m i l l o n y e s impar ’ ) ;
end
else
disp ( ’ El numero no e s un numero e n t e r o ’ ) ;
end
end
end

Ejecución
>> ejercicio_1(100)
El numero es menor que un millon y es par

>> ejercicio_1(101)
El numero es menor que un millon y es impar

2. EJERCICIO: Realizar un programa en Matlab que permita visualizar un cı́rculo de radio


6.5 y centro 3.

Código en Matlab
% Programa que p e r m i t e v i s u a l i z a r un c i r c u l o de r a d i o
% 6.5 y centro 3
t =0: pi / 1 5 0 : 2 ∗ pi ;

2
x =6.5∗ cos ( t )+3;
y =6.5∗ sin ( t )+3;
plot ( x , y , ’ b ’ )
grid on

Ejecución

3. EJERCICIO: Graficar la siguiente función y sus derivadas, en un solo gráfico de manera


superpuesta, aplicando el comando if.

−x
e
 si x < −1
f (x) = |x| si −1<x<1

 2
x +1 si x>1

Código en Matlab
% Programa que p e r m i t e g r a f c a r f u n c i o n e s y s u s d e r i v a d a s
% en un s o l o g r a f i c o de manera s u p e r p u e s t a , a p l i c a n d o
% e l comando i f .
x = −100:0.01:100;
f =(x<−1).∗exp(−x)+((−1<x)&(x < 1 ) ) . ∗ abs ( x)+(x > 1 ) . ∗ ( x . ˆ 2 + 1 ) ;
plot ( x , f , ’ b l u e ’ ) ;
axis ([ −2 2 −5 5 ] ) ;
grid on ;
hold on ;

3
d=(x<−1).∗(−exp(−x))+((−1<x)&(x < 1 ) ) . ∗ ( 1 ) + ( x > 1 ) . ∗ ( 2 . ∗ x ) ;
plot ( x , d , ’ r e d ’ ) ;

Ejecución

4. EJERCICIO: Elabore un programa que permita calcular las raı́ces reales de un polinomio
de segundo grado de la forma ax2 + bx + c = 0. Tenga en cuenta que dependiendo del valor del
discriminante (D = b2 − 4ac) el sistema puede dar raı́ces reales (D >= 0) o raı́ces complejas
(D < 0). El programa debe informar al usuario si el sistema no tiene raı́ces reales. Además se
debe indicar si las raı́ces reales son iguales (D = 0) o diferentes (D > 0).

Código en Matlab
function l=e j e r c i c i o 4 ( p )
% Programa que p e r m i t e c a l c u l a r l a s r a i c e s r e a l e s
% de un p o l i n o m i o de segundo . Tener en c u e n t a e l
% d e s c r i m i n a n t e ya que l a s r a i c e s pueden s e r r e a l e s
% o c o m p l e j a s . I n d i c a r s i l a s r a i c e s son i g u a l e s a
% c e r o y son mayores a c e r o .
% Para u t i l i z a r e s t a f u n c i o n s e d e b e i n g r e s a r l o s
% c o e f i c i e n t e s en forma de v e c t o r empezando d e s d e a h a s t a c
disp ( ’ Su p o l i n o m i o e s ’ )
a=p ( 1 , 1 ) ;
b=p ( 1 , 2 ) ;
c=p ( 1 , 3 ) ;
D=bˆ2−4∗a ∗ c ;

4
i f D==0
disp ( ’ La e c u a c i o n t i e n e r a i c e s i g u a l e s ’ ) ;
g=(−b ) / ( 2 ∗ a ) ;
disp ( ’ R a i c e s i g u a l e s a c e r o , l a s r a i c e s son i g u a l e s e n t r e s i ’ ) ;
disp ( ’ Las r a i c e s o b t e n i d a s son ’ );
g

end
i f D<0
h=abs (D) ;
i=−b / ( 2 ∗ a ) ;
j=−sqrt ( h ) / ( 2 ∗ a ) ;
k=sqrt ( h ) / ( 2 ∗ a ) ;
%x3=(−b+s q r t ( g ) ) / 2 ∗ a ;
%x4=(−b−s q r t ( g ) ) / 2 ∗ a ;
disp ( ’ R a i c e s menores a c e r o por t a n t o l a s r a i c e s son i m a g n a r i a s ’ ) ;
f p r i n t f ( ’ Las r a i c e s i m a g i n a r i a s d e l p o l i n o m i o son : \ n ’ ) ;
f p r i n t f ( ’ Raiz 1 : %f + ( %f i ) ’ , i , j ) ;
f p r i n t f ( ’ \ nRaiz 2 : %f + ( %f i ) \ n ’ , i , k ) ;
end
i f D>0
disp ( ’ La e c u a c i o n t i e n e r a i c e s r e a l e s d i f e r e n t e s ’ ) ;
e=(−b+sqrt (D) ) / 2 ∗ a ;
f =(−b−sqrt (D) ) / 2 ∗ a ;
disp ( ’ Las r a i c e s son i g u a l mayores que c e r o por t a n t o son r e a l e s ’ ) ;
disp ( ’ La p r i m e r a r a i z e s ’ );
e
disp ( ’ La segunda r a i z e s ’ );
f
end
end

Ejecución
>> ejercicio_4([2 6 2])
Su polinomio es
La ecuacion tiene raices reales diferentes
Las raices son igual mayores que cero por tanto son reales
La primera raiz es

e =

-1.5279

La segunda raiz es

f =

5
-10.4721

>> ejercicio_4([2 -1 5])


Su polinomio es
Las raices son menores a cero por tanto las raices son imagnarias
Las raices imaginarias del polinomio son:
Raiz 1: 0.250000 + (-1.561249 i)
Raiz 2: 0.250000 + (1.561249 i)

5. EJERCICIO: Tabla de conversión de temperatura. La relación de diversas escalas de tem-


peratura con la escala Celsius (C), es la siguiente:

F = 95 C + 32

K = C + 273, 15
8
R= C
10
Código en Matlab
% Programa que p e r m i t e c o n v e r t i r de g r a d o s c e l s i u s a
% c u a l e r q u i e r o t r o sitema , Se u t i l i z a l a l e t r a s para
% poder s a l i r d e l programa
op =1;
while op ˜= ’ s ’
disp ( ’ Para s a l i r d i g i t a r l a t e c l a s e n t r e c o m i l l a s i m p l e ’ ) ;
disp ( ’ C o n v e r t i r de C e l s i u s a : ’ ) ;
disp ( ’ E s c o j a una o p c i o n ’ ) ;
disp ( ’ 1 . F a r e n h e i t ’ ) ;
disp ( ’ 2 . K e l v i n ’ ) ;
disp ( ’ 3 . Rankine ’ ) ;
disp ( ’ s . Para s a l i r en c u a l q u i e r momento ’ ) ;
op=input ( ’ E l e g i r l a o p c i o n d e s e a d a ’ );
format s h o r t
s w i t c h op
case 1
disp ( ’ Para s a l i r d i g i t a r l a t e c l a s e n t r e c o m i l l a s i m p l e ’ ) ;
num=input ( ’ I n g r e s a r e l v a l o r en C e l s i u s que s e d e s e a t r a n s f o r m a r ’ ) ;
i f num==’ s ’
disp ( ’ El programa ha f i n a l i z a d o ’ )
break ;
end
t =((9/5)∗num)+32;

6
disp ( ’ Su r e s p u e s t a en g r a d o s F a r e n h e i t e s ’ );
t
case 2
disp ( ’ Para s a l i r d i g i t a r l a t e c l a s e n t r e c o m i l l a s i m p l e ’ ) ;
num=input ( ’ I n g r e s a r e l v a l o r en C e l s i u s que s e d e s e a t r a n s f o r m a r ’ ) ;
i f num==’ s ’
disp ( ’ El programa ha f i n a l i z a d o ’ )
break ;
end
t=num+ 2 7 3 . 1 5 ;
disp ( ’ Su r e s p u e s t a en g r a d o s K e l v i n e s ’ );
t
case 3
disp ( ’ Para s a l i r d i g i t a r l a t e c l a s e n t r e c o m i l l a s i m p l e ’ ) ;
num=input ( ’ I n g r e s a r e l v a l o r en C e l s i u s que s e d e s e a t r a n s f o r m a r ’ ) ;
i f num==’ s ’
disp ( ’ El programa ha f i n a l i z a d o ’ )
break ;
end
t =(8/10)∗num ;
disp ( ’ Su r e s p u e s t a en g r a d o s Rankine e s ’ );
t
case ’ s ’
disp ( ’ El programa ha f i n a l i z a d o ’ )
break ;
otherwise
disp ( ’ I n g r e s e una de l a s o p c i o n e s mencionadas . ’ )
end
end

Ejecución
>> ejercicio_5
Para salir del programa digitar la tecla s entre comilla simple
Convertir de Celsius a :
Escoja una opcion
1. Farenheit
2. Kelvin
3. Rankine
s. Para salir en cualquier momento
Elegir la opcion deseada 1
Para salir del programa digitar la tecla s entre comilla simple
Ingresar el valor en grados Celsius que se desea transformar 30
Su respuesta en grados Farenheit es

t =

7
86

Para salir del programa digitar la tecla s entre comilla simple


Convertir de Celsius a :
Escoja una opcion
1. Farenheit
2. Kelvin
3. Rankine
s. Para salir en cualquier momento
Elegir la opcion deseada 2
Para salir del programa digitar la tecla s entre comilla simple
Ingresar el valor en grados Celsius que se desea transformar 30
Su respuesta en grados Kelvin es

t =

303.1500

Para salir del programa digitar la tecla s entre comilla simple


Convertir de Celsius a :
Escoja una opcion
1. Farenheit
2. Kelvin
3. Rankine
s. Para salir en cualquier momento
Elegir la opcion deseada 3
Para salir del programa digitar la tecla s entre comilla simple
Ingresar el valor en grados Celsius que se desea transformar 30
Su respuesta en grados Rankine es

t =

24

Para salir del programa digitar la tecla s entre comilla simple


Convertir de Celsius a :
Escoja una opcion
1. Farenheit
2. Kelvin
3. Rankine
s. Para salir en cualquier momento
Elegir la opcion deseada ’s’
El programa ha finalizado

6. EJERCICIO: Crear una función m.file con la que se pueda graficar la función paramétrica

8
siguiente:
(
x(t) = (R + r)cos(t) − rcos( R+r
r t)
z(t) =
y(t) = (R + r)sin(t) − rsen( R+r
r t)

Los parámetros de entrada deben ser R, r, a, b y el número n de puntos. t ∈ [a, b] y a, b ∈ R.

Código en Matlab
function e j e r c i c i o 6 (R, r , a , b , n )
% Programa que p e r m i t e i n g r e s a r una f u n c i o n p a r a m e t r i c a ,
% con l o s v a l o r e s de R=r a d i o mayor , r=r a d i o menor ,
% a=l i m i t e i n f e r i o r , b=l i m i t e s u p e r i o r , n=numero de p u n t o s
t=linspace ( a , b , n ) ;
x=((R+r ) ∗ cos ( t )) −( r ∗ cos ( ( (R+r ) / r ) . ∗ t ) ) ;
y=((R+r ) ∗ sin ( t )) −( r ∗ sin ( ( (R+r ) / r ) . ∗ t ) ) ;
plot ( x , y )
grid on
t i t l e ( ’ G r a f i c a de l a f u n c i o n p a r a m e t r i c a ’ )
end

Ejecución

7. EJERCICIO: Realizar un programa en donde el peso de una muestra se determina realizando


4 pesadas, se descarta el menor peso y se promedian los otros tres. Considere que el usuario

9
ingresa una tabla con el número de sustancia en la primera columna y las mediciones realizadas
en las otras 4 columnas. Mostrar en pantalla el número de muestra, las mediciones, el peso
eliminado y el peso promedio de cada sustancia pesada.

Código en Matlab
function [ ] = e j e r c i c i o 7 ( d a t o s )
% R e a l i z a r un programa en donde e l p e s o de una
% muestra s e d e t e r m i n a r e a l i z a n d o 4 pesadas ,
% s e d e s c a r t a e l menor p e s o y s e promedian l o s
% o t r o s t r e s . C o n s i d e r e que e l u s u a r i o i n g r e s a
% una t a b l a con e l numero de s u s t a n c i a en l a
% primera columna y l a s m e d i c i o n e s r e a l i z a d a s
% en l a s o t r a s 4 columnas . Mostrar en p a n t a l l a
% e l numero de muestra , l a s me di c io n es , e l p e s o
% e l i m i n a d o y e l p e s o promedio de cada s u s t a n c i a pesada .
l=s i z e ( d a t o s ) ;
disp ( ’ Numero de muestra ’ )
disp ( d a t o s ( 1 , 1 ) )
disp ( ’ M e d i c i o n e s de l a muestra ’ )
f o r i =2:5
disp ( d a t o s ( 1 , i ) )
end
i f d a t o s (1 ,2) < d a t o s (1 ,3)& d a t o s (1 ,2) < d a t o s (1 ,4)& d a t o s (1 ,2) < d a t o s ( 1 , 5 )
disp ( ’ El p e s o a e l i m i n a r e s ’ ) ; disp ( d a t o s ( 1 , 2 ) )
prom=( d a t o s (1 ,3)+ d a t o s (1 ,4)+ d a t o s ( 1 , 5 ) ) / 3 ;
disp ( ’ El promedio t i e n e e l v a l o r de ’ ) ; disp ( prom )
end
i f d a t o s (1 ,3) < d a t o s (1 ,2)& d a t o s (1 ,3) < d a t o s (1 ,4)& d a t o s (1 ,3) < d a t o s ( 1 , 5 )
disp ( ’ El p e s o a e l i m i n a r e s ’ ) ; disp ( d a t o s ( 1 , 3 ) )
prom=( d a t o s (1 ,2)+ d a t o s (1 ,4)+ d a t o s ( 1 , 5 ) ) / 3 ;
disp ( ’ El promedio t i e n e e l v a l o r de ’ ) ; disp ( prom )
end
i f d a t o s (1 ,4) < d a t o s (1 ,2)& d a t o s (1 ,4) < d a t o s (1 ,3)& d a t o s (1 ,4) < d a t o s ( 1 , 5 )
disp ( ’ El p e s o a e l i m i n a r e s ’ ) ; disp ( d a t o s ( 1 , 4 ) )
prom=( d a t o s (1 ,3)+ d a t o s (1 ,2)+ d a t o s ( 1 , 5 ) ) / 3 ;
disp ( ’ El promedio t i e n e e l v a l o r de ’ ) ; disp ( prom )
end
i f d a t o s (1 ,5) < d a t o s (1 ,2)& d a t o s (1 ,5) < d a t o s (1 ,3)& d a t o s (1 ,5) < d a t o s ( 1 , 4 )
disp ( ’ El p e s o a e l i m i n a r e s ’ ) ; disp ( d a t o s ( 1 , 5 ) )
prom=( d a t o s (1 ,3)+ d a t o s (1 ,4)+ d a t o s ( 1 , 2 ) ) / 3 ;
disp ( ’ El promedio t i e n e e l v a l o r de ’ ) ; disp ( prom )
end
end

Ejecución
>> ejercicio_7([1 2 3 5 4])

10
Numero de muestra
1

Mediciones de la muestra
2

El peso a eliminar es
2

El promedio tiene el valor de


4

8. EJERCICIO: Represente en Matlab la superficie 3D dada por la función


1 1 T P−1
fx (x1 , ..., xn ) = P e(− 2 (x−µ) (x−µ))
(2π)n/2 | |1/2

el caso n = 2, usar los siguientes valores de las constantes u = (10, 10)T ,


P
Para
 =
3 −1 P P
. El sı́mbolo | | significa el determinante de la matriz .
−1 4

Código en Matlab
% Programa que r e p r e s e n t a l a s u p e r f i c i e 3D dada por l a f u n c i o n
syms a b ;
X=[a ; b ] ;
u=t r a n s p o s e ( [ 1 0 1 0 ] ) ;
m=[3 −1; −1 4 ] ;
f=i n l i n e ( ( exp ( − ( 1 / 2 ) ∗ ( (X−u ) ’ ) ∗ (mˆ( −1))∗(X−u ) ) ) / ( ( 2 ∗ pi ) ∗ sqrt ( det (m) ) ) ) ;
x=0:0.2:10;
y=0:0.2:10;
f o r a =1: length ( x )
f o r b=1: length ( x )
z ( a , b)= f ( x ( a ) , y ( b ) ) ;
end
end
surf ( x , y , z , ’ EdgeColor ’ , ’ none ’ )
colormap ( s p r i n g ) ;
t i t l e ( ’ S u p e r f i c i e 3D ’ ) ;

11
colormap ( w i n t e r ) ;
xlabel ( ’ Eje X ’ ) ;
ylabel ( ’ Eje Y ’ ) ;
z l a b e l ( ’ Eje Z ’ ) ;

Ejecución

9. EJERCICIO: Escriba un programa que busque los números amigables y diferentes entre 1
y 1000. Dos números son amigables si el primero es la suma de los divisores del segundo y
viceversa. Escriba un programa que busque los números amigables y diferentes entre 1 y 1000.
Dos números son amigables si el primero es la suma de los divisores del segundo y viceversa.

Código en Matlab
% Programa que p e r m i t e b u s c a r l o s numeros a m i g a b l e s
% entre 1 y 1000.
pos =1;
a2 =0;
b1 =0;
for i =2:1:1000
f o r j = 1 : 1 : i /2
d i v=mod( i , j ) ;
i f d i v==0
a2=a2+j ;
end
end

12
i f a2>=3
f o r l = 1 : 1 : a2 /2
p=mod( a2 , l ) ;
i f p==0
b1=b1+l ;
end
end
end
i f b1==i ;
i f a2˜= i ;
numA( pos ,1)= i ;
numA( pos ,2)= a2 ;
pos=pos +1;
end
end
a2 =0;
b1 =0;
end
numA

Ejecución
>> ejercicio_9

numA =

220 284
284 220

10. EJERCICIO: Realizar una función tal que ingresado un numero N, se impriman por pantalla
todos los números primos de 1 hasta N.
Ej: Ingreso el número 13 y se imprimen por pantalla: 1, 3, 5, 7, 11, 13.

Código en Matlab
% R e a l i z a r una f u n c i o n t a l que i n g r e s a d o
% un numero N, s e impriman por p a n t a l l a
% t o d o s l o s numeros primos de 1 h a s t a N.
% Ej : I n g r e s o e l numero 13 y s e imprimen
% por p a n t a l l a : 1 , 3 , 5 , 7 , 11 , 1 3 .
n1 =1;
n2 =2;
num=input ( ’ I n g r e s e e l v a l o r para l i m i t a r l a s e r i e de numeros primos ’ );
while n2<=num
i f n2>=n1
n1=n1 +1;

13
i f (mod( n2 , n1)==0) && ( n2˜=n1 )
n2=n2 +1;
n1 =1;
end
i f (mod( n2 , n1)==0) && ( n2==n1 )
disp ( n2 ) ;
n2=n2 +1;
n1 =1;
end
end
end

Ejecución
>> ejercicio_10
Ingrese el numero para limitar la serie de numeros primos 10
2

11. EJERCICIO: En cada uno de los casos siguientes, halle el error absoluto Ez y el error rela-
tivo Rz y determine el número de cifras significativas de la aproximación.

a) x = 2,71828182, x̂ = 2,7182
b) y = 98350, ŷ = 9800
c) z = 0, 000068, ẑ = 0, 00006

Código en Matlab
% En cada uno de l o s c a s o s s i g u i e n t e s ,
% h a l l e e l e r r o r a b s o l u t o Ez y e l e r r o r
% r e l a t i v o Rz y d e t e r m i n e e l numero de
% c i f r a s s i g n i f i c a t i v a s de l a a p r o x i m a c i o n .
format l o n g
x1 = 2 . 7 1 8 2 8 1 8 2 ;
x2 = 2 . 7 1 8 2 ;
y1 =98350;
y2 =98000;
z1 = 0 . 0 0 0 0 6 8 ;
z2 = 0 . 0 0 0 0 6 ;
%Error A b s o l u t o y r e l t i v o

14
e a b s 1=abs ( x1−x2 ) ;
e r e l 1=abs ( ( x1−x2 ) / x1 ) ;
c i f s i g 1=f l o o r (−( log ( 2 ∗ e r e l 1 ) / log ( 1 0 ) ) ) ;
disp ( ’ E r r o r a b s o l u t o l i t e r a l a ’ ) ; disp ( e a b s 1 )
disp ( ’ E r r o r R e l a t i v o l i t e r a l a ’ ) ; disp ( e r e l 1 )
disp ( ’ C i f r a s s i g n i f i c a t i v a s ’ ) ; disp ( c i f s i g 1 )
%l i t e r a l b
e a b s 2=abs ( y1−y2 ) ;
e r e l 2=abs ( ( y1−y2 ) / y1 ) ;
c i f s i g 2=f l o o r (−( log ( 2 ∗ e r e l 2 ) / log ( 1 0 ) ) ) ;
disp ( ’ E r r o r a b s o l u t o l i t e r a l b ’ ) ; disp ( e a b s 2 )
disp ( ’ E r r o r R e l a t i v o l i t e r a l b ’ ) ; disp ( e r e l 2 )
disp ( ’ C i f r a s s i g n i f i c a t i v a s ’ ) ; disp ( c i f s i g 2 )
%l i t e r a l c
e a b s 3=abs ( z1−z2 ) ;
e r e l 3=abs ( ( z1−z2 ) / z1 ) ;
c i f s i g 3=f l o o r (−( log ( 2 ∗ e r e l 3 ) / log ( 1 0 ) ) ) ;
disp ( ’ E r r o r a b s o l u t o l i t e r a l c ’ ) ; disp ( e a b s 3 )
disp ( ’ E r r o r R e l a t i v o l i t e r a l c ’ ) ; disp ( e r e l 3 )
disp ( ’ C i f r a s s i g n i f i c a t i v a s ’ ) ; disp ( c i f s i g 3 )

Ejecución
>> ejercicio_11
Error absoluto literal a
8.182000000012124e-05

Error Relativo literal a


3.009989597036014e-05

Cifras significativas
4

Error absoluto literal b


350

Error Relativo literal b


0.003558718861210

Cifras significativas
2

Error absoluto literal c


7.999999999999998e-06

Error Relativo literal c


0.117647058823529

15
Cifras significativas
0

12. EJERCICIO: Dados los desarrollos de Taylor :


1
= 1 + h + h2 + h3 + O(h4 )
1−h
h2 h4
cos(h) = 1 − + + O(h6 )
2! 4!
Determine el orden de aproximación de su suma y de su producto.

De su suma:
1 h2 h4
+ cos(h) = 2 + h + h2 − + h3 + + O(h6 ) + O(h4 )
1−h 2 4!
1 h2
+ cos(h) = 2 + h + + h3 + O(h4 )
1−h 2
De su producto:

1 h2 h4 h4 h6 h5
∗ cos(h) = 1 − + + O(h6 ) + h2 − + + h2 ∗ O(h6 ) + h3 − +
1−h 2! 4! 2! 4! 2!
h7 h2 h4
+ h3 ∗ O(h6 ) + O(h4 ) − ∗ O(h4 ) + ∗ O(h4 ) + O(h6 ) ∗ O(h4 )
4! 2! 4!
1 h2 h3
∗ cos(h) = 1 + h + + + O(h4 )
1−h 2! 2!
13. EJERCICIO: Encuentre una raı́z positiva , con los métodos de la bisección y newton a mano
de la ecuación :
x2 − 4xsin(x) + (2sin(x))2
que sea exacta hasta la segunda cifra significativa , solo con el empleo de una calculadora
Método de Newton

f (x) = x2 − 4x ∗ sin(x) + (2 ∗ sin(x))2


0
f (x) = 2x − 4sin(x) − 4x ∗ cos(x) + 4sin(x) ∗ cos(x)
Primera iteración
x0 = 1,9
x1 = x0 + ff0(x0)
(x0)
x1 = 1,9 + ff0(1,9)
(1,9)
x1 = 1, 8999
Segunda iteración
x1 = 1,8999

16
f (1,8999)
x2 = 1,8999 + f 0 (1,8999)
0,00005234
x2 = 1,8999 + 1,2477
Tercera iteración
x3 = x3 + ff0(x3)
(x3)
x3 = 1,8998 + 0,00005135
1,2463
x3 = 1, 8997
Cuarta iteración
x4 = x3 + ff0(x3)
(x3)
x4 = 1,8997 + 0,00004769
1,2455
x4 = 1, 8996

|1,8996 − 1,8997| 10−d


Rx = = 0, 00005263 <
1,8997 2

d=4

Se tienen 4 cifras significativas.

14. EJERCICIO: Con los programas: método de la bisección , newton y método de la secante,
encuentre una raı́z de
f (x) = x − tan(x)
en el intervalo [1,2]. Compare y comente los resultados obtenidos.

Código en Matlab
% Con e l metodo de l a b i s e c c i o n , newton y s e c a n t e
% e n c o n t r a r l a s r a i c e s de l a s i g u i e n t e f u n c i o n
f x = @( x ) ( x−tan ( x ) ) ;
dx = @( x ) (1 −( sec ( x ) ) ˆ 2 ) ;
format s h o r t ;
%Metodo B i s e c c i o n
disp ( ’ El metodo de l a b i s e c c i o n no s e puede r e a l i z a r para e s t e c a s o ’ )
%Metodo de Newton
x=1;
x1=x−f x ( x ) / dx ( x ) ;
while abs ( x1−x ) >0.000001
x=x1 ;
x1=x−f x ( x ) / dx ( x ) ;
end
disp ( ’ La r a i z e s : ’ )
disp ( x ) ;
%Metodo de s e c a n t e
x2 =1;

17
x3 =2;
f = @( y ) ( y−tan ( y ) ) ;
while abs ( x3−x2 ) >0.000001
x4=x3−( f ( x3 ) ∗ ( x3−x2 ) ) / ( f ( x3)− f ( x2 ) ) ;
x2=x3 ;
x3=x4 ;
end
disp ( ’ La r a i z e s : ’ )
disp ( x3 )

Ejecución
>> ejercicio_14
El metodo de la biseccion no se puede realizar para este caso
La raiz es:
2.1004e-06

La raiz es :
2.5777e-06

15. EJERCICIO: Encontrar mediante el método de newton las raı́ces de la ecuación



3 ∗ sin(x) = cos(x)

Código en Matlab
% Programa que p e r m i t e e n c o n t r a r l a s r a i c e s de
% l a s i g u i e n t e e c u a c i o n mediante e l metodo de
% Newton Rhapson
f = @( x ) ( sqrt ( 3 ) ∗ sin ( x)−cos ( x ) ) ;
d f = @( x ) ( sqrt ( 3 ) ∗ cos ( x)+ sin ( x ) ) ;
a =4.5;
b=a−( f ( a ) / d f ( a ) ) ;
while abs ( b−a ) >0.000001
a=b ;
b=a−( f ( a ) / d f ( a ) ) ;
c o n t=c o n t +1;
end
disp ( ’ La r a i z e s : ’ )
disp ( a ) ;

Ejecución
>> ejercicio_15
La raiz es:

18
3.6652

16. EJERCICIO: Considere la función f (x) = cosh(x) + cos(x) − γ, con γ = 1, 2, 3 Encuentre


un intervalo que contenga un cero de f para cada valor de γ y calcule dicho cero con el método
de la bisección.

γ = 1; no existe un corte con el eje x. Si γ = 2; tampoco existe un corte con el eje x. Si γ = 3;


en este caso si existe un corte con el eje x, y se puede aplicar el método.

Código en Matlab
% Programa que c o n s i d e r a una f u n c i o n y e n c u e n t r a
% un i n t e r v a l o que c o n t i e n e un c e r o de l a f u n c i o n
% para cada v a l o r de l a n d a y c a l c u l e d i c h o c e r o
% con e l metodo de l a b i s e c c i o n
f= @( x ) ( cosh ( x)+cos ( x ) −3);
a =0;
b=3;
i f ( f ( a ) ∗ f ( b)) <0
c=(a+b ) / 2 ;
end
i f ( f ( a ) ∗ f ( c )) <0
b=c ;
else
a=c ;
end
while abs ( b−a ) >0.0000001
i f ( f ( a ) ∗ f ( b)) <0
c=(a+b ) / 2 ;
end
i f ( f ( a ) ∗ f ( c )) <0
b=c ;
else
a=c ;
end
end
disp ( ’ La r a i z e n c o n t r a d a e s ’)
c=(a+b ) / 2 ;
disp ( c ) ;

Ejecución
>> ejercicio_16
La raiz encontrada es
1.8579

19
17. EJERCICIO: Un objeto está situado en un plano cuya pendiente varı́a a una tasa constante
ω. La posición del objeto, al instante t, está dada por la fórmula.
g
s(t, w) = ∗ [senh(wt) − sen(wt)]
2w2

donde g = 9,8m/s2 es la aceleración de la gravedad. Asumiendo que el objeto se ha despla-


zado 1 metro en 1 segundo. calcule el valor de 2 usando el método de la bisección con una
tolerancia de 10− 5 ¿Cuántas iteraciones se requieren para alcanzar la tolerancia indicada?

Código en Matlab
% Programa que c u e n t a e l numero de i t e r a c i o n e s
% para a l c a n z a r l a t o l e r a n c i a i n d i c a d a u t i l i z a n d o
% e l metodo de b i s e c c i o n
a =0.5;
b=1.5;
c o n t =0;
f=@(w ) ( ( 9 . 8 ∗ ( sinh (w)− sin (w) ) ) / ( 2 ∗wˆ2) −1);
while abs ( b−a ) >0.00001
i f f ( a ) ∗ f ( b)<0
c=(a+b ) / 2 ;
i f f ( a ) ∗ f ( c )<0
b=c ;
else
a=c ;
end
c o n t=c o n t +1;
else
disp ( ’En e l i n t e r v a l o dado no e x i s t e un c e r o ’ ) ;
return
end
end
disp ( ’W: ’ ) ;
disp ( c ) ;
disp ( ’ I t e r a c i o n e s : ’ )
disp ( c o n t ) ;

Ejecución
>> ejercicio_17
W:
0.6121

Iteraciones:
17

20
18. EJERCICIO: Escriba e implemente un programa en Matlab para calcular la raı́z cuadrada
de un número positivo a, basado en el método de Newton.

Código en Matlab
% E s c r i b a e implemente un programa en Matlab para c a l c u l a r l a r a i z cuadrada
% de un numero p o s i t i v o a , basado en e l metodo de Newton .
n=input ( ’ I n g r e s e un numero : ’) ;
i f n>0
f= @( x ) ( x.ˆ2 −n ) ;
d= @( x ) ( 2 ∗ x ) ;
x0=n−f ( n ) / d ( n ) ;
c o n t =1;
while abs ( x0−n ) >0.000001
n=x0 ;
x0=n−f ( n ) / d ( n ) ;
c o n t=c o n t +1;
end
disp ( ’ La r a i z o b t e n i d a e s : ’ ) ;
disp ( n ) ;
else
disp ( ’ El numero i n g r e s a d o no e s p o s i t i v o ’ ) ;
end

Ejecución
>> ejercicio_18
Ingrese un numero: 8
La raiz obtenida es:
2.8284

21

Вам также может понравиться