Python, scipy.integrate.solve_ive, a problem with plotting a graph

  • Thread starter Natchanon
  • Start date
  • #1
31
3

Summary:

I want to plot v vs t, but the code doesn't return enough points for plotting
Hi, I have this code that solve the equation of motion of a relativistic electron.
Python:
from math import sqrt
from scipy.integrate import odeint, solve_ivp
import numpy as np
import matplotlib.pyplot as plt

e = 1.602 * 10 ** (-19)
E = 10 ** 6
m = 9.106 * 10 ** (-31)

def d2vdt2(t,r):
    t_arr = []
    v_arr = []
    c = 300000000
    e = 1.602*10**(-19)
    E = 10**6
    m = 9.106*10**(-31)
    tau = 6*10**(-24)
    v,a = r
    gamma = 1/sqrt(1-(v**2)/(c**2))
    d2vdt2 = (1/(tau*(gamma)**6))*((e*E/m) - a*((6*tau*v*a*gamma**8)/(c**2) + gamma + (v**2)*(gamma**3)/(c**2)))
    print(t,v/c)
    return a,d2vdt2

a = solve_ivp(d2vdt2,(0, 20*10**(-9)), (0,e*E/m),"Radau")
The problem is I want to plot v vs t, but I don't know how get lists of v and t from the function. If I have the function return v and t, then the code won't loop enough times to get enough data points for plotting. The results of v and t printed out in the function are correct, but I don't know how to make lists of them as the function resets every time it is called by solve_ivp, and the values of v and t from the previous iteration are gone. Thanks!
 

Answers and Replies

  • #3
31
3
Is the graph should be something like this ?
That is the acceleration vs time. I need velocity vs time. I already got the solution now. Thanks for replying.
 
  • #4
Ibix
Science Advisor
Insights Author
6,843
5,706
Have you read the documentation for the function you are using? A quick search suggests that your returned value a should contain what you are looking for as members called t and y.
 
  • #5
31
3
Have you read the documentation for the function you are using? A quick search suggests that your returned value a should contain what you are looking for as members called t and y.
I already got the answer. How can I close the thread?
 
  • #6
Ibix
Science Advisor
Insights Author
6,843
5,706
You can report it and ask for the mentors to close it, but I wouldn't bother - I only replied because posts 2 and 3 didn't download until I'd hit post.
 
  • #7
12,031
5,691
Why not close the thread by telling us what the error was?
 

Related Threads on Python, scipy.integrate.solve_ive, a problem with plotting a graph

  • Last Post
Replies
2
Views
2K
  • Last Post
Replies
1
Views
770
Replies
1
Views
604
Replies
6
Views
773
Replies
1
Views
4K
Replies
3
Views
608
Replies
21
Views
1K
Replies
5
Views
5K
  • Last Post
Replies
3
Views
2K
Replies
11
Views
15K
Top