Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Solución de Ecuaciones Diferenciales: Simulación con Métodos Numéricos en Matlab, Guías, Proyectos, Investigaciones de Métodos Numéricos

Documento que presenta la solución analítica y numérica de dos problemas de ecuaciones diferenciales usando el software Matlab y el método de Ralston. El documento incluye el código Matlab para graficar las soluciones y tablas con los resultados.

Tipo: Guías, Proyectos, Investigaciones

2020/2021

Subido el 30/03/2022

eugenio-31
eugenio-31 🇨🇴

3 documentos

1 / 14

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
SOLUCION DE ECUACIONES DIFERENCIALES
Simulación 6 - Matlab
Métodos Numéricos
Profesor: Ivan Dario Mora Orozco.
Facultad de Ingeniería eléctrica electrónica
Universidad Pontificia Bolivariana
2021
Gabriel Esteban Calderón Almeida
ID: 000419489
Eugenio David Garcia Sierra
ID:000422689
Nicolas Perez Garces
ID:000419360
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe

Vista previa parcial del texto

¡Descarga Solución de Ecuaciones Diferenciales: Simulación con Métodos Numéricos en Matlab y más Guías, Proyectos, Investigaciones en PDF de Métodos Numéricos solo en Docsity!

SOLUCION DE ECUACIONES DIFERENCIALES

Simulación 6 - Matlab

Métodos Numéricos

Profesor: Ivan Dario Mora Orozco.

Facultad de Ingeniería eléctrica electrónica

Universidad Pontificia Bolivariana

Gabriel Esteban Calderón Almeida

ID: 000419489

Eugenio David Garcia Sierra

ID:

Nicolas Perez Garces

ID:

Método asignado

dy

dx

= x

2

y + y y ( 0 )= 1 Intervalo [ 0 , 1.5]

Sustituyendo

dy

dx

por y'

y' = x^2 y + y

Reescribir como una EDO de primer orden de variables separables

y

y

'

= x

2

y

dy =∫ x

2

+ 1 dx

Integramos cada lado de la ecuación

∫ x

2

+ 1 dx =

x

3

+ x + c 1

y

dy =ln ( y ) + c 2

Combinamos las constantes

ln (^ y )=

x

3

+ x + c 1

Despejamos y

y = e

x^3 3 + x^ + c^1

  1. Programa en Matlab que soluciona la ecuación diferencial con el método de Ralston Para h=0. close all clear all clc syms x y; inf=0; sup=1.5; h=0.5; y_i = 1; %y_ x_i = 0; %x_ erpa=0; %Se inicia en 0 para la iteración 0 cont=0; %Cuenta las iteraciones x_vr=[]; y_vr=[]; y_va=[]; fx=x^2*y+y; %Función f(x) y_sol = exp((x.^3/3)+x); %Solución analítica de la ED fprintf("iteración\t\tx_i\t\t y_aprox.\t y_verdadera\t error porcentual") for i=inf:h:sup k1_s = subs(fx,[x,y],[x_i,y_i]); %sustituir valores

k1 = double(k1_s); %Convertir a número k2_s = subs(fx,[x,y],[x_i+(3/4)h,y_i+(3/4)k1h]); %sustituir valores k2 = double(k2_s); %Convertir a número fprintf("\n\t%i\t\t\t%.2f\t\t",cont,x_i) fprintf("%f\t\t",y_i) x_vr=[x_vr,x_i]; %vector con valores de x_i y_va=[y_va,y_i]; %vector con valores de y_i yv_s = subs(y_sol,x,x_i); %sustituir valores y_v = double(yv_s); %Convertir a número erpa=abs(((y_i-y_v)/y_v)100); %Cálculo del error porcentual y_vr=[y_vr,y_v]; %vector con valores de y_v x_i = x_i + h; y_i = y_i+((1/3)k1+(2/3)k2)*h; fprintf("%f\t\t",y_v) fprintf("%f\n",erpa) cont=cont+1; end plot(x_vr,y_vr,x_vr,y_va,'--',"linewidth",2) title('gráfica solución real con h = 0.5') xlabel('x') ylabel('f(x)') grid on Grafica del programa:

  • Para h=0.
  • Para h=0.

Para h=0.

Observamos que a menor valor de h la gráfica se aproxima a la solución esperada, en 0. nos damos cuenta de esto.

close all ; clear all ; clc; % se definen las variables como simbólicas syms yt xt D R C1 C2 L iR iC1 iC2 iL vR vC1 vC2 vL % En MATLAB, para la solución simbólica, todas las ecuaciones se escriben igualadas a cero. %------------------------------------------------------------------------


%Ecuaciones de equilibrio ecn1 = iR-iC1-iL; ecn2 = iL+iC2; %Ecuaciones de compatibilidad ecn3 = xt-vR-vC1; ecn4 = vC1+vC2-vL; ecn5 = vC1+vC2-yt; %Ecuaciones descriptivas ecn6 = vR-RiR; ecn7 = iC1-C1DvC1; ecn8 = iC2-C2DvC2; ecn9 = vL-LD*iL; %Se invoca el comando solve para obtener el modelo del circuito s=solve(ecn1,ecn2,ecn3,ecn4,ecn5,ecn6,ecn7,ecn8,ecn9,vR,vC1,vC2,vL,iR,iC ,iC2,iL,yt); %Se extrae la solución para yt soly=s.yt; %Se simplifica la solución y=simplify(soly); pretty(y)

Se obtiene la siguiente ED

Utilizaremos el siguiente programa para obtener la solución inversa de Laplace cambiando valores

clear all close all clc syms s L=49/116; R=1; C1=1/7; C2=29/42; Hs=((C2s^2L))/(C1sR+C2sR+C2s^2L+C1C2s^3LR+1) Xs=1/(s+0.2); Ys=Hs*Xs yt=ilaplace(Ys) RESULTADOS:

Hs= (7s^2)/(24(s^3/24 + (7s^2)/24 + (5s)/6 +1))

Ys= (7s^2)/(24(s+1/5)(s^3/24 + (7s^2)/24 + (5*s)/6 +1))

Yt=(5exp(-t/5))/362 – (9exp(-3t))/2 + (812exp(-2t)(cos(2t) + (8sin(2*t))/29))/

  1. Insertamos el programa sin algunas partes debido a que nos faltó en la simulación 2 esos puntos, no supimos desarrollarlos, pero de igual forma le agregamos el programa y le especificamos que partes nos faltan. close all clear all clc syms x y D; L=49/116; R=1; C1=1/7; C2=29/42; inf=0; sup=5; h=0.1; y_i = 0.1; %y_ x_i = 0.1; %x_ erpa=0; %Se inicia en 0 para la iteración 0 cont=0; %Cuenta las iteraciones x_vr=[]; y_vr=[]; y_va=[]; fx= En esta parte se implementa la nueva función de x %Función f(x) y_sol = Y aquí la solución analítica de la ED %Solución analítica de la ED fprintf("iteración\t\tx_i\t\t y_aprox.\t y_verdadera\t error porcentual") for i=inf:h:sup k1_s = subs(fx,[x,y],[x_i,y_i]); %sustituir valores k1 = double(k1_s); %Convertir a número k2_s = subs(fx,[x,y],[x_i+(3/4)h,y_i+(3/4)k1h]); %sustituir valores k2 = double(k2_s); %Convertir a número fprintf("\n\t%i\t\t\t%.2f\t\t",cont,x_i) fprintf("%f\t\t",y_i) x_vr=[x_vr,x_i]; %vector con valores de x_i y_va=[y_va,y_i]; %vector con valores de y_i yv_s = subs(y_sol,x,x_i); %sustituir valores y_v = double(yv_s); %Convertir a número erpa=abs(((y_i-y_v)/y_v)100); %Cálculo del error porcentual y_vr=[y_vr,y_v]; %vector con valores de y_v x_i = x_i + h; y_i = y_i+((1/3)k1+(2/3)k2)*h; fprintf("%f\t\t",y_v) fprintf("%f\n",erpa)

cont=cont+1; end plot(x_vr,y_vr,x_vr,y_va,'--',"linewidth",2) title('gráfica para la solución real con h = 0.1') xlabel('x') ylabel('f(x)') grid on Conclusiones:

  • Tras faltar una parte de la simulación 2 no pudimos desarrollar el algoritmo del punto numero 4 con la nueva fx y la solución de y, no supimos desarrollar esa parte, pero decidimos agregar el programa sin estas 2 partes faltantes y quedamos atentos a la retroalimentación.
  • Esta simulación nos ayudó a corroborar que a través de algoritmos se pueden simular o expresar aproximaciones a soluciones matemáticas, todo esto a raíz de la computadora y sus programas, ayuda a simplificar cálculos muy complejos de forma sencilla. Referencias:
  • https://auladigital.upb.edu.co/pluginfile.php/1329527/mod_resource/content/1/ copia_presentacion_tema6_diferenciales_MN_UPB.pdf copia_presentacion_tema6_diferenciales_MN_UPBArchivo