Hi ,

The ODE solver gives me the following answer:



If I try to evaluate that with lambdify is impossible because values too 
large. How can I tell to the solver to reduce the fraction ?

Thank you for your support.

Dabitto.


The script is below:

import pylab
import numpy as np
import serial
import time
import struct
import csv
import sys
import datetime

import sympy as sym

from IPython.display import display

sym.init_printing() #pretty print

t = sym.symbols('t',real=True)
m = sym.symbols('m',real=True)
k = sym.symbols('k',real=True)
v = sym.symbols('v',real=True)
q = sym.symbols('q',real=True)
y = sym.Function('y')
a0, b0 = sym.symbols('a0, b0', real=True)

mass            = 10.0
friction        = 2.0
spring          = 40.1
final           = 0.0
position_init   = -0.1
speed_init    = 2.0

Eq2 
=sym.Eq(sym.diff(y(t),t,2)+sym.diff(y(t),t,1)*friction/mass+y(t)*spring/mass,final)
print('')
print('ODE:')
display(Eq2)

print('Generic solution:')
y_sl0=sym.dsolve(Eq2, y(t)).rhs  # take only right hand side
display(sym.Eq(y(t), y_sl0))

# Initial conditions:
cnd0 = sym.Eq(y_sl0.subs(t, 0), position_init)  # y(0) = a0
cnd1 = sym.Eq(y_sl0.diff(t).subs(t, 0), speed_init)  # y'(0) = b0

#  Solve for C1, C2:
C1, C2 = sym.symbols("C1, C2")  # generic constants
C1C2_sl = sym.solve([cnd0, cnd1], (C1, C2))

# Substitute back into solution:
y_sl1 = sym.simplify(y_sl0.subs(C1C2_sl))
print("Solution with initial conditions:")
display(sym.Eq(y(t), y_sl1))



-- 
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/sympy.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sympy/8f8bb29b-6d5e-42b4-8ca2-c80eda1997ad%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to