You are on page 1of 6

Solución de ecuaciones diferenciales

MATLAB contiene dos funciones para calcular soluciones numéricas de ecuaciones


diferenciales ordinarias: ode23 y ode45.

[x,y] = ode23 (‘nombre de la funcion’, a , b, inicial)


[x,y] = ode45 (‘nombre de la funcion’, a , b, inicial)

Ecuacion diferencial

dy
5  4y  2
dx
condición inicial:
y(0) =1

Procedimiento
1) Escribir en el editor un archivo .m

function dy=g2(x,y)
dy=(2-4*y)/5;

guardar con nombre g2

2) Escribir en el editor otro archivo .m


Las instrucciones que resuelven la ecuación diferencial dentro de un intervalo
determinado, considerando la condición inicial.

[x,y1]=ode45('g2',0,10,1);

en esta instrucción el intervalo es [0,10]


el valor inicial es y(0) =1

Se puede comparar con los resultados obtenidos utilizando


la solución analítica
y=(1/2)+(1/2)*exp(-0.8*x);

y graficar con:
subplot(2,1,1),plot(x,y1,x,y,'o'),title('solucion de la ecuacion'),...
xlabel('x'),ylabel('y'),grid

El archivo .m completo para escribir en el editor es:

[x,y1]=ode45('g2',0,10,1);
y=(1/2)+(1/2)*exp(-0.8*x);
subplot(2,1,1),plot(x,y1,'*',x,y,'o'),title('solucion de la
ecuacion'),...
xlabel('x'),ylabel('y'),grid

guardar con nombre solución


solucion de la ecuacion
1

0.95

0.9

0.85

0.8

0.75
y

0.7

0.65

0.6

0.55

0.5
0 1 2 3 4 5 6 7 8 9 10
x

Resolver y graficar las siguientes ecuaciones diferenciales, comparando con la solución


analítica.
dy
1. y'   3x 2
dx
solucion de la ecuacion
1200

1000

800

600
y

400

200

-200
0 1 2 3 4 5 6 7 8 9 10
x

dy
2.  0.13 y
dx

solucion de la ecuacion
1

0.9

0.8

0.7

0.6
y

0.5

0.4

0.3

0.2
0 1 2 3 4 5 6 7 8 9 10
x
soluciones analíticas

y  x 3  7.5
y  e 0.13 x

Programación con Matlab


La instrucción IF

Es una instrucción de selección que permite probar una condición para determinar que
pasos se ejecutaran a continuación.

Forma general de la instrucción IF sencilla es:

if expresión lógica
instrucciones
end

La expresión lógica contiene uno o más operadores relacionales o lógicos.

Operador relacional Operador lógico


< menor que
> mayor que
<= \menor o igual
>= mayor o igual
== igual
~= no igual

Operador lógico Símbolo


no ~
y &
o |

ejemplo
a>b
b==c | b== 5.5

EjercicioA
%instruccionIF
g = input('escriba un número entre 30 y 70, g = ');
if g<50
%graficar la figura1
x=1:10;
subplot(2,1,1),plot(x.^2),title('figura 1')
end
%graficar la figura2
y=0.5:0.1:2.5;
subplot(2,1,2),plot(y.^(1/2)),title('figura 2')

le damos un valor a g<50 g==45

figura 1
100

50

0
1 2 3 4 5 6 7 8 9 10

figura 2
2

1.5

0.5
0 5 10 15 20 25

Ejercicio B
%ifanidada
g = input('escriba un número entre 30 y 70, g = ');
a = input('escriba un número entre 30 y 70, a = ');
if g<50
%graficar la figura1
x=1:10;
subplot(2,1,1),plot(x.^2),title('figura 1')
if a>g
%graficar la figura2
y=0.5:0.1:2.5;
subplot(2,1,2),plot(y.^(1/2)),title('figura 2')
end
end

dandole vaolres de g=30 a=45


figura 1
100

50

0
1 2 3 4 5 6 7 8 9 10

figura 2
2

1.5

0.5
0 5 10 15 20 25

Ejercicio C
% if y else if
temperatura = input('ingrese temperatura entre 30 y 120, temperatura
= ');
if temperatura > 100;
disp('Demasiado caliente- falla de equipo')
elseif temperatura > 90;
disp('intervalo operativo normal')
elseif temperatura >50;
disp('temperatura por debajo del intervalo operativo deseado')
else
disp('demasiado frio - apagar equipo')
end

>> sol
ingrese temperatura entre 30 y 120, temperatura = 120
Demasiado caliente- falla de equipo
>> sol
ingrese temperatura entre 30 y 120, temperatura = 90
temperatura por debajo del intervalo operativo deseado
>> sol
ingrese temperatura entre 30 y 120, temperatura = 40
demasiado frio - apagar equipo