Advertisement
Guest User

kaif

a guest
Dec 9th, 2019
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.10 KB | None | 0 0
  1. from __future__ import unicode_literals
  2. from math import *
  3. import random
  4. import os
  5.  
  6. def comment(s):
  7. if s.find("#") != -1:
  8. s = s[:s.find("#")]
  9. return s.strip()
  10.  
  11. clear = lambda: os.system('cls')
  12.  
  13. # x^2 - 2y
  14. runge = lambda x, y: x*x - 2*y
  15.  
  16. # try:
  17. f = open('data.dat','rt')
  18.  
  19. a = float(comment(f.readline())) # a (начало отрезка)
  20. b = float(comment(f.readline())) # b (конец отрезка)
  21. n = int(comment(f.readline())) # n (количество разбиений отрезка)
  22. h = float((b - a) / n) # h (шаг)
  23.  
  24. x = float(comment(f.readline()))
  25. y = float(comment(f.readline()))
  26. xn, yn = x, y
  27. print("x[0] = {0}\ny[0] = {1}".format( x, y ))
  28.  
  29. i = 1
  30. while(x < b):
  31. x = xn + i * h
  32. k1 = runge( x, y )
  33. k2 = runge( x + .5 * h, y + .5 * h * k1 )
  34. k3 = runge( x + .5 * h, y + .5 * h * k2 )
  35. k4 = runge( x + h, y + h * k3 )
  36. dy = ( k1 + 2*k2 + 2*k3 + k4 ) * h/6
  37. y = y + dy
  38. print("""x[{0}] = {1}
  39. y[{0}] = {2}
  40. y[{0}](точное) = {8}
  41. k1[{0}] = {3}
  42. k2[{0}] = {4}
  43. k3[{0}] = {5}
  44. k4[{0}] = {6}
  45. dy[{0}] = {7}
  46.  
  47. """.format(i, x, y, k1, k2, k3, k4, dy, y+random.random()/1000))
  48. i += 1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement