SkyGreen24

numsem

Feb 18th, 2018
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.31 KB | None | 0 0
  1. from numpy import linspace, array
  2. from scipy import *
  3. from scipy.integrate import odeint
  4. import matplotlib
  5. from mpl_toolkits.mplot3d import  axes3d,Axes3D
  6. import matplotlib.pyplot as plt
  7. from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2TkAgg
  8.  
  9. import tkinter
  10.  
  11. def interval(message, default):
  12.     interval1= input(message)
  13.     if interval1:
  14.         return int(interval1)
  15.     elif ValueError or TypeError:
  16.         return default
  17.     else:
  18.         return default
  19.  
  20. poc=interval("Upišite početak intervala:", -23)
  21. kraj=interval("Upišite kraj intervala:", 23)
  22. brel=interval("Upišite broj koraka:", 1000)
  23. def dxdt(x,t):
  24.     return array([5*x[0]-(1/3)*(x[0])**3-x[1], (1/5)*x[0]])
  25. x0=array([1,1]) #matematički bi matrica trebala biti stupac, no kako funkcija odeint prepoznaje i bez transponiranja, izostavio sam transponiranje
  26. t=linspace(poc, kraj, brel) #stvara array od 1000 elementa s jednakim razmakom između svakog elementa, te uključuje 0 i 1
  27. x=odeint(dxdt,x0,t)
  28. print(x)
  29.  
  30. x1,x2=x.T #Transponiranje je obavezno. U ovom slučaju svaka od 2 varijable uzima po 1000 elemenata, dok bi bez transponiranja 1000 varijabli uzimalo po 2 elementa
  31. def izlaz():
  32.     app.destroy() #naredba za gasenje programa
  33.  
  34. class trodim(tkinter.Tk):
  35.     def __init__(self,parent):
  36.         tkinter.Tk.__init__(self,parent)
  37.         self.parent = parent
  38.         self.main()
  39.  
  40.     def main(self):
  41.         self.fig = plt.figure()
  42.         self.fig = plt.figure(figsize=(3,3))
  43.  
  44.  
  45.         self.frame = tkinter.Frame(self)
  46.         self.frame.pack(padx=15,pady=15)
  47.  
  48.         self.canvas = FigureCanvasTkAgg(self.fig, master=self.frame)
  49.  
  50.         self.canvas.get_tk_widget().pack(side='top', fill='both')
  51.  
  52.  
  53.         self.canvas._tkcanvas.pack(side='top', fill='both', expand=1)
  54.  
  55.         ax = Axes3D(self.fig)
  56.        
  57.         ax.plot(t, x1, x2, label='diferencijalna jednadžba')
  58.  
  59.         self.toolbar = NavigationToolbar2TkAgg( self.canvas, self )
  60.         self.toolbar.update()
  61.         self.toolbar.pack()
  62.  
  63.         self.btn = tkinter.Button(self,text='Izlaz', command =  izlaz)
  64.         self.btn.pack(ipadx=125)
  65.         self.btn = tkinter.Button(self,text='button')
  66.         self.btn.pack(ipadx=125)
  67.  
  68.  
  69. if __name__ == "__main__":
  70.     app = trodim(None)
  71.     app.title('Seminar')
  72.     app.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment