Hi Aaron, Thank you ...
David Le mardi 6 décembre 2016 23:32:38 UTC+1, Aaron Meurer a écrit : > > You can call evalf() on the expression before lambdifying to reduce the > numbers to floating point numbers. > > Aaron Meurer > > On Tue, Dec 6, 2016 at 4:53 PM, Dabitto <[email protected] > <javascript:>> wrote: > >> >> 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] <javascript:>. >> To post to this group, send email to [email protected] <javascript:> >> . >> 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 >> >> <https://groups.google.com/d/msgid/sympy/8f8bb29b-6d5e-42b4-8ca2-c80eda1997ad%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> For more options, visit https://groups.google.com/d/optout. >> > > -- 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/f1a9971d-3a65-46e0-979b-b0b805d11475%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
