{"id":8636,"date":"2017-09-08T11:00:02","date_gmt":"2017-09-08T16:00:02","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/analisisnumerico\/?p=8636"},"modified":"2026-04-04T09:32:20","modified_gmt":"2026-04-04T14:32:20","slug":"edo-lineal-complementaria-particular","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-u06\/edo-lineal-complementaria-particular\/","title":{"rendered":"6.6 EDO lineal - soluci\u00f3n complementaria y particular con Sympy-Python"},"content":{"rendered":"\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<div class=\"wp-block-group has-medium-font-size is-layout-flex wp-block-group-is-layout-flex\">\n<p><a href=\"#ejemplo\">ejemplo<\/a><\/p>\n\n\n\n<p><a href=\"#analitico\">soluci\u00f3n<\/a>:<\/p>\n\n\n\n<p><a href=\"#complementaria\">complementaria<\/a><\/p>\n\n\n\n<p><a href=\"#particular\">particular<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmo\">algoritmo<\/a><\/p>\n\n\n\n<p><a href=\"#grafica\">gr\u00e1fica<\/a><\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<p><em><strong>Referencia<\/strong><\/em>: [1]&nbsp;<a href=\"https:\/\/docs.sympy.org\/latest\/modules\/solvers\/ode.html\">Sympy ODE solver<\/a>. [2] Stewart James. C\u00e1lculo de varias variables. 17.2 p1148<\/p>\n\n\n\n<p>Los m\u00e9todos anal\u00edticos para encontrar una soluci\u00f3n y(t) a una ecuaci\u00f3n diferencial ordinaria EDO requieren identificar el tipo de la ecuaci\u00f3n para establecer el m\u00e9todo de soluci\u00f3n. Sympy incorpora librer\u00edas que pueden asistir en la soluci\u00f3n con muchos de los m\u00e9todos anal\u00edticos conocidos.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<div class=\"wp-block-group has-medium-font-size is-layout-flex wp-block-group-is-layout-flex\">\n<p><a href=\"#ejemplo\">ejemplo<\/a><\/p>\n\n\n\n<p><a href=\"#analitico\">soluci\u00f3n<\/a>:<\/p>\n\n\n\n<p><a href=\"#complementaria\">complementaria<\/a><\/p>\n\n\n\n<p><a href=\"#particular\">particular<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmo\">algoritmo<\/a><\/p>\n\n\n\n<p><a href=\"#grafica\">gr\u00e1fica<\/a><\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"ejemplo\">1. Ejemplo<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Ecuaci\u00f3n diferencial de un circuito RLC<\/h3>\n\n\n\n<figure class=\"wp-block-image alignright size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"315\" height=\"157\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2023\/09\/circuito_RLC01.png\" alt=\"circuito RLC 1H 3Ohm 1\/2F\" class=\"wp-image-13847\" \/><\/figure>\n\n\n\n<p><strong>Referencia<\/strong>:&nbsp; Lathi Ejemplo 2.1.a p155, Ejemplo 2.9 p175, Oppenheim 2.4.1 p117, ejemplo 1 de Modelo entrada-salida<\/p>\n\n\n\n<p>El circuito RLC con entrada x(t) de la figura tiene una corriente y(t) o salida del sistema que se representa&nbsp; por medio de una ecuaci\u00f3n diferencial.<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\frac{d^{2}y(t)}{dt^{2}} + 3\\frac{dy(t)}{dt} + 2y(t) = \\frac{dx(t)}{dt} <\/span>\n\n\n\n<p>Las condiciones iniciales del sistema a tiempo t=0 son y(0)=0 , y'(0)=-5<\/p>\n\n\n\n<p>Encuentre la soluci\u00f3n considerando como entrada x(t)<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> x(t) = 10 e^{-3t} \\mu(t) <\/span>\n\n\n\n<h3 class=\"wp-block-heading\">1.1 Ecuaci\u00f3n diferencial y condiciones de frontera o iniciales<\/h3>\n\n\n\n<p>La ecuaci\u00f3n diferencial del ejercicio con Sympy se escribe con el operador sym.diff(y,t,k). Indicando la variable independiente, que '<code>y<\/code>' es una funci\u00f3n y el orden de la derivada con k.<\/p>\n\n\n\n<p>La igualdad de una ecuaci\u00f3n puede escribirse como lado izquierdo (LHS) es igual al lado derecho (RHS). Una ecuaci\u00f3n en Sympy se compone de las dos partes <code>sym.Eq(LHS,RHS)<\/code>.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; gutter: false; title: ; notranslate\" title=\"\">\n# INGRESO\nt = sym.Symbol('t', real=True)\nr = sym.Symbol('r')\ny = sym.Function('y')\nx = sym.Function('x')\n\n# ecuacion: lado izquierdo = lado derecho\n#           Left Hand Side = Right Hand Side\nLHS = sym.diff(y(t),t,2) + 3*sym.diff(y(t),t,1) + 2*y(t)\nRHS = sym.diff(x(t),t,1)\necuacion = sym.Eq(LHS,RHS)\n<\/pre><\/div>\n\n\n<p>Las condiciones de frontera o iniciales y(0)=0, y'(0)=-5 se establecen en un diccionario en el siguiente formato,<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; gutter: false; title: ; notranslate\" title=\"\">\n# condiciones de frontera o iniciales\ny_cond = {y(0) : 0,\n          sym.diff(y(t),t,1).subs(t,0) : -5}\n<\/pre><\/div>\n\n\n<p>La entrada x(t) para el sistema, que inicia en t=0 se define junto a \u03bc(t) o Heaviside(t) como:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; gutter: false; title: ; notranslate\" title=\"\">\n# ecuacion entrada x(t)\nxp = 10*sym.exp(-3*t)*sym.Heaviside(t)\n<\/pre><\/div>\n\n\n<h3 class=\"wp-block-heading\">1.2 Clasificar la ecuaci\u00f3n diferencial ordinaria<\/h3>\n\n\n\n<p>Para revisar el tipo de EDO a resolver se tiene la instrucci\u00f3n:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; gutter: false; title: ; notranslate\" title=\"\">\n&gt;&gt;&gt; sym.classify_ode(ecuacion, y(t))\n('factorable', \n 'nth_linear_constant_coeff_variation_of_parameters', \n 'nth_linear_constant_coeff_variation_of_parameters_Integral')\n&gt;&gt;&gt;\n<\/pre><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<div class=\"wp-block-group has-medium-font-size is-layout-flex wp-block-group-is-layout-flex\">\n<p><a href=\"#ejemplo\">ejemplo<\/a><\/p>\n\n\n\n<p><a href=\"#analitico\">soluci\u00f3n<\/a>:<\/p>\n\n\n\n<p><a href=\"#complementaria\">complementaria<\/a><\/p>\n\n\n\n<p><a href=\"#particular\">particular<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmo\">algoritmo<\/a><\/p>\n\n\n\n<p><a href=\"#grafica\">gr\u00e1fica<\/a><\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">2. Desarrollo anal\u00edtico<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Soluci\u00f3n EDO como suma de soluci\u00f3n complementaria y soluci\u00f3n particular<\/h3>\n\n\n\n<p>La soluci\u00f3n para una EDO puede presentarse tambi\u00e9n como la suma de una soluci\u00f3n complementaria y una soluci\u00f3n particular<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> y(t) = y_p(t) + y_c(t) <\/span>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"512\" height=\"206\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2023\/09\/SistemaEntradaEstadoCero01.png\" alt=\"Sistema Entrada Estado Cero esquema\" class=\"wp-image-13849\" \/><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<div class=\"wp-block-group has-medium-font-size is-layout-flex wp-block-group-is-layout-flex\">\n<p><a href=\"#ejemplo\">ejemplo<\/a><\/p>\n\n\n\n<p><a href=\"#analitico\">soluci\u00f3n<\/a>:<\/p>\n\n\n\n<p><a href=\"#complementaria\">complementaria<\/a><\/p>\n\n\n\n<p><a href=\"#particular\">particular<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmo\">algoritmo<\/a><\/p>\n\n\n\n<p><a href=\"#grafica\">gr\u00e1fica<\/a><\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"complementaria\">2.1 Soluci\u00f3n complementaria y<sub>c<\/sub>(t)<\/h3>\n\n\n\n<p>La soluci\u00f3n complementaria de la EDO se interpreta tambi\u00e9n como respuesta de entrada cero del circuito, donde la salida y(t) depende solo de las condiciones iniciales del circuito. Para el ejemplo, considera solo las energ\u00edas internas almacenadas en el capacitor y el inductor. Para \u00e9ste caso x(t) = 0<\/p>\n\n\n\n<p>Es necesario crear la ecuaci\u00f3n homog\u00e9nea con x(t)=0 en la ecuaci\u00f3n diferencial para encontrar la soluci\u00f3n con las condiciones iniciales dadas en el enunciado del ejercicio.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; gutter: false; title: ; notranslate\" title=\"\">\n# ecuaci\u00f3n homog\u00e9nea x(t)=0, entrada cero\nRHSx0 = ecuacion.rhs.subs(x(t),0).doit()\nLHSx0 = ecuacion.lhs.subs(x(t),0).doit()\nhomogenea = LHSx0 - RHSx0\n\n# solucion general de ecuaci\u00f3n homog\u00e9nea\nyc = sym.dsolve(homogenea, y(t),ics=y_cond)\nyc = yc.expand()\n<\/pre><\/div>\n\n\n<p>el resultado de la ecuaci\u00f3n complementaria es<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; gutter: false; title: ; notranslate\" title=\"\">\nsolucion complementaria y_c(t): \n            -t      -2*t\ny(t) = - 5*e   + 5*e    \n<\/pre><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<div class=\"wp-block-group has-medium-font-size is-layout-flex wp-block-group-is-layout-flex\">\n<p><a href=\"#ejemplo\">ejemplo<\/a><\/p>\n\n\n\n<p><a href=\"#analitico\">soluci\u00f3n<\/a>:<\/p>\n\n\n\n<p><a href=\"#complementaria\">complementaria<\/a><\/p>\n\n\n\n<p><a href=\"#particular\">particular<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmo\">algoritmo<\/a><\/p>\n\n\n\n<p><a href=\"#grafica\">gr\u00e1fica<\/a><\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"particular\">2.2 Soluci\u00f3n particular y<sub>p<\/sub>(t)<\/h3>\n\n\n\n<p>En el caso de la soluci\u00f3n particular, se simplifica la ecuaci\u00f3n diferencial al sustituir x(t) con la entrada particular x<sub>p<\/sub>(t). Las condiciones iniciales en este caso consideran que el circuito no ten\u00eda energ\u00eda almacenada en sus componentes (estado cero), por lo que las condiciones iniciales no se consideran.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; gutter: false; title: ; notranslate\" title=\"\">\n# ecuaci\u00f3n particular x(t)=0, estado cero\nRHSxp = ecuacion.rhs.subs(x(t),x_p).doit()\nLHSxp = ecuacion.lhs.subs(x(t),x_p).doit()\nparticular = LHSxp - RHSxp\n\n# solucion particular de ecuaci\u00f3n homog\u00e9nea\nyp = sym.dsolve(particular, y(t))\n<\/pre><\/div>\n\n\n<p>Se aplica nuevamente la b\u00fasqueda de la soluci\u00f3n con sym.dsolve() y se obtiene la soluci\u00f3n particular que incluye parte del modelo de la ecuaci\u00f3n homog\u00e9nea con los coeficientes Ci<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; gutter: false; title: ; notranslate\" title=\"\">\n&gt;&gt;&gt; sym.pprint(yp.expand())\n           -t       -2*t      -t                    -2*t                    -3*t\ny(t) = C1*e   + C2*e     - 5*e  *Heaviside(t) + 20*e    *Heaviside(t) - 15*e    *Heaviside(t)\n\n&gt;&gt;&gt; yp.free_symbols\n{C2, C1, t}\n&gt;&gt;&gt;\n<\/pre><\/div>\n\n\n<p>En \u00e9ste punto se incrementan los t\u00e9rminos de las constantes C1 y C2 como s\u00edmbolos, que para tratar exclusivamente la soluci\u00f3n particular, se reemplazan con ceros. Para obtener las variables de la ecuaci\u00f3n se usa la instrucci\u00f3n&nbsp;<code>yp.free_symbols<\/code> que entrega un conjunto. El conjunto se descarta el s\u00edmbolo t y se sustituye todos los dem\u00e1s por cero en la ecuaci\u00f3n.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; gutter: false; title: ; notranslate\" title=\"\">\n    # particular sin terminos Ci\n    y_Ci = yp.free_symbols\n    y_Ci.remove(t) # solo Ci\n    for Ci in y_Ci: \n        yp = yp.subs(Ci,0)\n<\/pre><\/div>\n\n\n<p>quedando la soluci\u00f3n particular como:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; gutter: false; title: ; notranslate\" title=\"\">\n            -t                    -2*t                    -3*t             \ny(t) = - 5*e  *Heaviside(t) + 20*e    *Heaviside(t) - 15*e    *Heaviside(t)\n<\/pre><\/div>\n\n\n<h3 class=\"wp-block-heading\">2.3 Soluci\u00f3n EDO como suma de complementaria + particular<\/h3>\n\n\n\n<p>La soluci\u00f3n de la ecuaci\u00f3n diferencial ordinaria, ante la entrada x(t) y condiciones iniciales es la suma de los componentes complementaria y particular:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; gutter: false; title: ; notranslate\" title=\"\">\n# solucion total = complementaria + particular\nytotal = yc.rhs + yp.rhs\n<\/pre><\/div>\n\n\n<p>El resultado de todo el algoritmo&nbsp; permite interpretar la respuesta con los conceptos de las respuestas del circuito a entrada cero y estado cero, que facilitan el an\u00e1lisis de las soluciones en ejercicios de aplicaci\u00f3n.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; gutter: false; title: ; notranslate\" title=\"\">\necuaci\u00f3n diferencial a resolver: \n                        2                 \n           d           d          d       \n2*y(t) + 3*--(y(t)) + ---(y(t)) = --(x(t))\n           dt           2         dt      \n                      dt                  \ncondiciones iniciales\n  y(0)  =  0\n  Subs(Derivative(y(t), t), t, 0)  =  -5\nclasifica EDO:\n  factorable\n  nth_linear_constant_coeff_variation_of_parameters\n  nth_linear_constant_coeff_variation_of_parameters_Integral\nx(t): \n    -3*t             \n10*e    *Heaviside(t)\nsolucion complementaria yc(t): \n            -t      -2*t\ny(t) = - 5*e   + 5*e    \nsolucion particular yp(t): \n       \/     -t       -2*t       -3*t\\             \ny(t) = \\- 5*e   + 20*e     - 15*e    \/*Heaviside(t)\nsolucion y(t) = yc(t) +yp(t): \n\/     -t       -2*t       -3*t\\                   -t      -2*t\n\\- 5*e   + 20*e     - 15*e    \/*Heaviside(t) - 5*e   + 5*e    \n&gt;&gt;&gt; \n<\/pre><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<div class=\"wp-block-group has-medium-font-size is-layout-flex wp-block-group-is-layout-flex\">\n<p><a href=\"#ejemplo\">ejemplo<\/a><\/p>\n\n\n\n<p><a href=\"#analitico\">soluci\u00f3n<\/a>:<\/p>\n\n\n\n<p><a href=\"#complementaria\">complementaria<\/a><\/p>\n\n\n\n<p><a href=\"#particular\">particular<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmo\">algoritmo<\/a><\/p>\n\n\n\n<p><a href=\"#grafica\">gr\u00e1fica<\/a><\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"algoritmo\">3. Algoritmo en Python<\/h2>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# Soluci\u00f3n de unaEcuaci\u00f3n Diferencial Ordinaria EDO\n# Lathi 2.1.a pdf 155, (D^2+ 3D + 2)y = Dx\nimport sympy as sym\n\n# INGRESO\nt = sym.Symbol('t', real=True)\ny = sym.Function('y')\nx = sym.Function('x')\n\n# ecuacion: lado izquierdo = lado derecho\n#           Left Hand Side = Right Hand Side\nLHS = sym.diff(y(t),t,2) + 3*sym.diff(y(t),t,1) + 2*y(t)\nRHS = sym.diff(x(t),t,1)\necuacion = sym.Eq(LHS,RHS)\n\n# condiciones de frontera o iniciales\ny_cond = {y(0) : 0,\n          sym.diff(y(t),t,1).subs(t,0) : -5}\n\n# ecuacion entrada x(t)\nxp = 10*sym.exp(-3*t)*sym.Heaviside(t)\n\n# PROCEDIMIENTO\nedo_tipo = sym.classify_ode(ecuacion, y(t))\n\n# ecuaci\u00f3n homog\u00e9nea x(t)=0, entrada cero\nRHSx0 = ecuacion.rhs.subs(x(t),0).doit()\nLHSx0 = ecuacion.lhs.subs(x(t),0).doit()\nhomogenea = LHSx0 - RHSx0\n\n# solucion general de ecuaci\u00f3n homog\u00e9nea\nyc = sym.dsolve(homogenea, y(t),ics=y_cond)\nyc = yc.expand()\n\ndef edo_lineal_particular(ecuacion,xp):\n    ''' edo solucion particular con entrada x(t)\n    '''\n    # ecuaci\u00f3n particular x(t)=0, estado cero\n    RHSxp = ecuacion.rhs.subs(x(t),xp).doit()\n    LHSxp = ecuacion.lhs.subs(x(t),xp).doit()\n    particular = LHSxp - RHSxp\n\n    # solucion particular de ecuaci\u00f3n homog\u00e9nea\n    yp = sym.dsolve(particular, y(t))\n\n    # particular sin terminos Ci\n    y_Ci = yp.free_symbols\n    y_Ci.remove(t) # solo Ci\n    for Ci in y_Ci: \n        yp = yp.subs(Ci,0)\n        \n    # simplifica y(t) y agrupa por escalon unitario\n    yp = sym.expand(yp.rhs,t)\n    lista_escalon = yp.atoms(sym.Heaviside)\n    yp = sym.collect(yp,lista_escalon)\n    yp = sym.Eq(y(t),yp)\n    \n    return(yp)\n\nyp = edo_lineal_particular(ecuacion,xp)\n# solucion total\nytotal = yp.rhs + yc.rhs\n\n\n# SALIDA\nprint('ecuaci\u00f3n diferencial a resolver: ')\nsym.pprint(ecuacion)\n\n# condiciones iniciales\nprint('condiciones iniciales')\nfor caso in y_cond:\n    print(' ',caso,' = ', y_cond&#x5B;caso])\n\nprint('clasifica EDO:')\nfor elemento in edo_tipo:\n    print(' ',elemento)\n\nprint('x(t): ')\nsym.pprint(xp)\n\nprint('solucion complementaria yc(t): ')\nsym.pprint(yc)\n\nprint('solucion particular yp(t): ')\nsym.pprint(yp)\n\nprint('solucion y(t) = yc(t) +yp(t): ')\nsym.pprint(ytotal)\n<\/pre><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<div class=\"wp-block-group has-medium-font-size is-layout-flex wp-block-group-is-layout-flex\">\n<p><a href=\"#ejemplo\">ejemplo<\/a><\/p>\n\n\n\n<p><a href=\"#analitico\">soluci\u00f3n<\/a>:<\/p>\n\n\n\n<p><a href=\"#complementaria\">complementaria<\/a><\/p>\n\n\n\n<p><a href=\"#particular\">particular<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmo\">algoritmo<\/a><\/p>\n\n\n\n<p><a href=\"#grafica\">gr\u00e1fica<\/a><\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"grafica\">4.&nbsp; Gr\u00e1fica de resultados<\/h2>\n\n\n\n<p>Se adjunta la gr\u00e1fica de los resultados de las ecuaciones complementaria, particular y total<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"550\" height=\"446\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2023\/09\/EDO_lineal_ComplementariaParticular01.png\" alt=\"EDO lineal Complementaria Particular  gr\u00e1fica\" class=\"wp-image-13850\" \/><\/figure>\n\n\n\n<p>Instrucciones adicionales en Python<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# GRAFICA ------------------\nimport numpy as np\nimport matplotlib.pyplot as plt\nequivalentes = &#x5B;{'DiracDelta': lambda x: 1*(x==0)},\n                {'Heaviside': lambda x,y: np.heaviside(x, 1)},\n                'numpy',]\n\n# INGRESO\nt_a = 0 ; t_b = 5 # intervalo tiempo &#x5B;t_a,t_b]\nmuestras = 51\n\n# PROCEDIMIENTO\ny_c = sym.lambdify(t,yc.rhs, modules=equivalentes)\ny_p = sym.lambdify(t,yp.rhs, modules=equivalentes)\ny_cp = sym.lambdify(t,ytotal, modules=equivalentes)\nti = np.linspace(t_a,t_b,muestras)\nyci = y_c(ti)\nypi = y_p(ti)\nycpi = y_cp(ti)\n\n# Grafica\nplt.plot(ti,yci, color='orange', label='yc(t)')\nplt.plot(ti,ypi, color='dodgerblue', label='yp(t)')\nplt.plot(ti,ycpi, color='green', label='y(t)')\nuntitulo = 'y(t)=\n<\/pre><\/div>\n\n\n<p>Un desarrollo semejante del ejercicio aplicando conceptos del curso de se\u00f1ales y sistemas de proporciona en:<\/p>\n\n\n\n<p><a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/ss-unidades\/ss-u03\/lti-ct-respuesta-del-sistema-yszirzsr-con-sympy\/\" data-type=\"post\" data-id=\"4538\">LTI CT Respuesta del Sistema Y(s)=ZIR+ZSR con Sympy-Python<\/a><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<div class=\"wp-block-group has-medium-font-size is-layout-flex wp-block-group-is-layout-flex\">\n<p><a href=\"#ejemplo\">ejemplo<\/a><\/p>\n\n\n\n<p><a href=\"#analitico\">soluci\u00f3n<\/a>:<\/p>\n\n\n\n<p><a href=\"#complementaria\">complementaria<\/a><\/p>\n\n\n\n<p><a href=\"#particular\">particular<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmo\">algoritmo<\/a><\/p>\n\n\n\n<p><a href=\"#grafica\">gr\u00e1fica<\/a><\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n","protected":false},"excerpt":{"rendered":"<p>ejemplo soluci\u00f3n: complementaria particular algoritmo gr\u00e1fica Referencia: [1]&nbsp;Sympy ODE solver. [2] Stewart James. C\u00e1lculo de varias variables. 17.2 p1148 Los m\u00e9todos anal\u00edticos para encontrar una soluci\u00f3n y(t) a una ecuaci\u00f3n diferencial ordinaria EDO requieren identificar el tipo de la ecuaci\u00f3n para establecer el m\u00e9todo de soluci\u00f3n. Sympy incorpora librer\u00edas que pueden asistir en la soluci\u00f3n [&hellip;]<\/p>\n","protected":false},"author":8043,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"wp-custom-template-entrada-mn-unidades","format":"standard","meta":{"footnotes":""},"categories":[40],"tags":[],"class_list":["post-8636","post","type-post","status-publish","format-standard","hentry","category-mn-u06"],"_links":{"self":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/8636","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/users\/8043"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/comments?post=8636"}],"version-history":[{"count":7,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/8636\/revisions"}],"predecessor-version":[{"id":18922,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/8636\/revisions\/18922"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/media?parent=8636"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/categories?post=8636"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/tags?post=8636"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}