[CHWisGevordTech] H2 Differentiaalvergelijkingen

1514 days ago by Carmen.Streat

H2: Differentiaalvergelijkingen

Bekijk http://doc.sagemath.org/html/en/reference/calculus/sage/calculus/desolvers.html voor een overzicht van mogelijke oplossingsmethoden voor differentiaalvergelijkingen (ODE= ordinary differential equation).

desolve? 
       

Opgave 1

Bepaal de meest algemene oplossing van de DV van 1e orde  $y'(x) - 3y(x)=x$ .

 
       

Laat zien welke oplossingsmethode Sage daarvoor gebruikt.

 
       

Vereenvoudig de bekomen oplossing tot de oplossing uit de cursus, nl: $y(x)=-\frac{1}{3}x-\frac{1}{9}+Ce^{3x}$

 
       

Opgave 2

Bepaal de meest algemene oplossing van de DV van 1e orde  $y'(x) - \tan(x)y(x)=\cos(x)-2x\sin(x)$ :

 
       

En bepaal vervolgens de unieke oplossing waarvoor $y(\frac{\pi}{6})=0$ :

ics - (optional) the initial or boundary conditions
for a first-order equation, specify the initial $x$ and $y$
for a second-order equation, specify the initial $x$, $y$, and $dy/dx$, i.e. write $[x0,y(x0),y′(x0)]$
for a second-order boundary solution, specify initial and final $x$ and $y$ boundary conditions, i.e. write $[x0,y(x0),x1,y(x1)].$

 
       

Opgave 3

Bepaal de unieke oplossing van de  DV $a^2xy'(x)+y(x)(x^2-a^2)=0$ waarvoor $y(1)=\frac{1}{a^2}e^{-\frac{1}{2a^2}}$. Je mag hierbij aannemen dat $x>0$ en dat $a>0$.

For equations involving more variables we specify an independent variable:

ivar - (optional) the independent variable (hereafter called $x$), which must be specified if there is more than one independent variable in the equation.


 
       

Vergeet niet om de gemaakte veronderstellingen ongedaan te maken:

forget() 
       

Opgave 4

Bepaal de A.O. van de DV: $y''-2y'+3y=x^3$

 
       

Bepaal de oplossing van het beginwaardeprobleem: $y''-2y'+3y=x^3$ met $y(0)=y'(0)=0$. 

 
       

 

Opgave 5

Bepaal de oplossing van de DV van de 2de orde: $y''(x)-3y'(x)+2y(x)=xcos(x)+e^x$   waarbij  $y(0)=1$ en $y'(0)=0$.

 
       

Vergelijk dit met de oplossing uit de oefeningencursus: $y(x)=C_1e^x+C_2e^{2x}+(\frac{1}{10}x-\frac{3}{25})\cos(x)+(-\frac{3}{10}x-\frac{17}{50})\sin(x)-xe^x$ met $C_1=1$ en $C_2=\frac{3}{25}$. 

Opgave 6

Bepaal de algemene oplossing van de volgende differentiaalvergelijking $y'''-4y"+3y'=(x+1)(\cos(x)+e^x)$ :

x=var('x') y=function('y')(x) desolve(diff(y,x,3)-4*diff(y,x,2)+3*diff(y,x,1)==(x+1)*(cos(x)+e^x),y) 
       
Traceback (click to the left of this block for traceback)
...
NotImplementedError: Maxima was unable to solve this ODE. Consider to
set option contrib_ode to True.
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "_sage_input_11.py", line 10, in <module>
    exec compile(u'open("___code___.py","w").write("# -*- coding: utf-8 -*-\\n" + _support_.preparse_worksheet_cell(base64.b64decode("eD12YXIoJ3gnKQp5PWZ1bmN0aW9uKCd5JykoeCkKZGVzb2x2ZShkaWZmKHkseCwzKS00KmRpZmYoeSx4LDIpKzMqZGlmZih5LHgsMSk9PSh4KzEpKihjb3MoeCkrZV54KSx5KQ=="),globals())+"\\n"); execfile(os.path.abspath("___code___.py"))
  File "", line 1, in <module>
    
  File "/var/sage/tmpRMlIIV/___code___.py", line 5, in <module>
    exec compile(u'desolve(diff(y,x,_sage_const_3 )-_sage_const_4 *diff(y,x,_sage_const_2 )+_sage_const_3 *diff(y,x,_sage_const_1 )==(x+_sage_const_1 )*(cos(x)+e**x),y)
  File "", line 1, in <module>
    
  File "/opt/sage/sage-7.4/local/lib/python2.7/site-packages/sage/calculus/desolvers.py", line 470, in desolve
    raise NotImplementedError("Maxima was unable to solve this ODE. Consider to set option contrib_ode to True.")
NotImplementedError: Maxima was unable to solve this ODE. Consider to set option contrib_ode to True.
desolve(diff(y,x,3)-4*diff(y,x,2)+3*diff(y,x,1)==(x+1)*(cos(x)+e^x),y,contrib_ode=true) 
       
Traceback (click to the left of this block for traceback)
...
NotImplementedError: Maxima was unable to solve this ODE.
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "_sage_input_15.py", line 10, in <module>
    exec compile(u'open("___code___.py","w").write("# -*- coding: utf-8 -*-\\n" + _support_.preparse_worksheet_cell(base64.b64decode("ZGVzb2x2ZShkaWZmKHkseCwzKS00KmRpZmYoeSx4LDIpKzMqZGlmZih5LHgsMSk9PSh4KzEpKihjb3MoeCkrZV54KSx5LGNvbnRyaWJfb2RlPXRydWUp"),globals())+"\\n"); execfile(os.path.abspath("___code___.py"))
  File "", line 1, in <module>
    
  File "/var/sage/tmpBoTGHv/___code___.py", line 3, in <module>
    exec compile(u'desolve(diff(y,x,_sage_const_3 )-_sage_const_4 *diff(y,x,_sage_const_2 )+_sage_const_3 *diff(y,x,_sage_const_1 )==(x+_sage_const_1 )*(cos(x)+e**x),y,contrib_ode=true)
  File "", line 1, in <module>
    
  File "/opt/sage/sage-7.4/local/lib/python2.7/site-packages/sage/calculus/desolvers.py", line 468, in desolve
    raise NotImplementedError("Maxima was unable to solve this ODE.")
NotImplementedError: Maxima was unable to solve this ODE.
Dit lukt niet, want :
  • desolve() - Compute the “general solution” to a 1st or 2nd order ODE via Maxima.

Bepaal de A.O. van die differentiaalvergelijking met verlaging van de orde (dus naar $y'$) en om daarna $y$ te bepalen.

 
       
 
       

Opgave 7

Gegeven het stelsel lineaire 1ste orde differentiaalvergelijkingen:

$\begin{cases} y'_1&=y_1+2y_2\\y'_2&=3y_1+2y_2 \end{cases} $   met $y_1(0)=0$ en $y_2(0)=-4$.

a) Bepaal de oplossing van dit stelsel lineaire 1ste orde differentiaalvergelijkingen als volgt:

  • Schrijf dit stelsel als een matrixvergelijking Y ' = A Y en definieer de matrix A in Sage
  • Bepaal de eigenwaarden en bijbehorende eigenvectoren van A. Gebruik hiervoor de commando's  A.eigenvalues() en A.eigenmatrix_right()
  • De oplossing van het stelsel is dan Y = TZ, waarbij T de matrix is met als kolommen de eigenvectoren van de eigenwaarden $\lambda_1, \lambda_2$ en Z de kolommatrix $\left( \begin{array}{c}C_1e^{\lambda_1x}\\ C_2e^{\lambda_2x}\end{array}\right)$.
 
       
 
       

b) Bepaal met onderstaande methode van Sage de oplossing van dit stelsel.

desolve_system? 
       

File: /opt/sage/sage-7.4/local/lib/python2.7/site-packages/sage/calculus/desolvers.py

Type: <type ‘function’>

Definition: desolve_system(des, vars, ics=None, ivar=None)

Docstring:

Solve any size system of 1st order ODE’s. Initial conditions are optional.

Onedimensional systems are passed to desolve_laplace().

INPUT:

  • des - list of ODEs
  • vars - list of dependent variables
  • ics - (optional) list of initial values for ivar and vars. If ics is defined, it should provide initial conditions for each variable, otherwise an exception would be raised.
  • ivar - (optional) the independent variable, which must be specified if there is more than one independent variable in the equation.

EXAMPLES:

sage: t = var('t')
sage: x = function('x')(t)
sage: y = function('y')(t)
sage: de1 = diff(x,t) + y - 1 == 0
sage: de2 = diff(y,t) - x + 1 == 0
sage: desolve_system([de1, de2], [x,y])
[x(t) == (x(0) - 1)*cos(t) - (y(0) - 1)*sin(t) + 1,
 y(t) == (y(0) - 1)*cos(t) + (x(0) - 1)*sin(t) + 1]

Now we give some initial conditions:

sage: sol = desolve_system([de1, de2], [x,y], ics=[0,1,2]); sol
[x(t) == -sin(t) + 1, y(t) == cos(t) + 1]
sage: solnx, solny = sol[0].rhs(), sol[1].rhs()
sage: plot([solnx,solny],(0,1))  # not tested
sage: parametric_plot((solnx,solny),(0,1))  # not tested

AUTHORS:

  • Robert Bradshaw (10-2008)
  • Sergey Bykov (10-2014)

File: /opt/sage/sage-7.4/local/lib/python2.7/site-packages/sage/calculus/desolvers.py

Type: <type ‘function’>

Definition: desolve_system(des, vars, ics=None, ivar=None)

Docstring:

Solve any size system of 1st order ODE’s. Initial conditions are optional.

Onedimensional systems are passed to desolve_laplace().

INPUT:

  • des - list of ODEs
  • vars - list of dependent variables
  • ics - (optional) list of initial values for ivar and vars. If ics is defined, it should provide initial conditions for each variable, otherwise an exception would be raised.
  • ivar - (optional) the independent variable, which must be specified if there is more than one independent variable in the equation.

EXAMPLES:

sage: t = var('t')
sage: x = function('x')(t)
sage: y = function('y')(t)
sage: de1 = diff(x,t) + y - 1 == 0
sage: de2 = diff(y,t) - x + 1 == 0
sage: desolve_system([de1, de2], [x,y])
[x(t) == (x(0) - 1)*cos(t) - (y(0) - 1)*sin(t) + 1,
 y(t) == (y(0) - 1)*cos(t) + (x(0) - 1)*sin(t) + 1]

Now we give some initial conditions:

sage: sol = desolve_system([de1, de2], [x,y], ics=[0,1,2]); sol
[x(t) == -sin(t) + 1, y(t) == cos(t) + 1]
sage: solnx, solny = sol[0].rhs(), sol[1].rhs()
sage: plot([solnx,solny],(0,1))  # not tested
sage: parametric_plot((solnx,solny),(0,1))  # not tested

AUTHORS:

  • Robert Bradshaw (10-2008)
  • Sergey Bykov (10-2014)
 
       

Opgave 8

De 2e orde differentiaalvergelijking $2y''+5y'-3y=0$ met beginvoorwaarden $y(0)=-4$ en $y'(0)=9$ kan geschreven worden als het stelsel 1e orde differentiaalvergelijkingen $$\begin{cases} y'_1&=y_2\\y'_2&=\frac{3}{2}y_1-\frac{5}{2}y_2 \end{cases} $$ met $y_1(0)=-4$ en $y_2(0)=9$. (ga dit na)

Los met Sage zowel de 2e orde differentiaalvergelijking als het stelsel 1e orde differentiaalvergelijkingen op en controleer dat de oplossingen wel degelijk overeenkomen.