# How do I fix Warning: Output Truncated?

Below is my code step by step for using Euler's Method to approximate a solution of a system. It will work when n = 10, but not when n = 100 or 1000. How can I fix it so that the output isn't truncated. Thanks!

# Define RR to be the real numbers, rounding to the nearest number, with 25 bits of precision
RR = RealField(25,rnd='RNDN')

# Define t,x,y to be numbers in RR
t,x,y = PolynomialRing(RR,3,"txy").gens()

# Define the system of equations
firsteq = y

secondeq = -x - x^3/6 + x^5/120 - x^7/5040 + x^9/362880

# Define parameters
t0 = 0

x0 = 0

y0 = 2

h = 1/4

n = 10

t1 = t0 + n*h

# Plot the x(t) and y(t) graphs
eulers_method_2x2_plot(firsteq , secondeq, t0, x0, y0, h, t1)

edit retag close merge delete

Sort by » oldest newest most voted

In this case the error message isn't particularly informative, but it looks like what's going on is that the timestep you've selected is too large. Euler's method is (notoriously) poorly behaved, and the code doesn't seem to fail very well when the terms go imaginary.

If you decrease your timestep h, your integration will converge and things should work. By slowing increasing h, you can watch the integration start to fail.

more

I should also point out that this is explicitly documented to be for *pedagogical* purposes only.

( 2011-10-05 14:54:33 -0500 )edit