Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from __future__ import unicode_literals
- from math import *
- import random
- import os
- def comment(s):
- if s.find("#") != -1:
- s = s[:s.find("#")]
- return s.strip()
- clear = lambda: os.system('cls')
- # x^2 - 2y
- runge = lambda x, y: x*x - 2*y
- # try:
- f = open('data.dat','rt')
- a = float(comment(f.readline())) # a (начало отрезка)
- b = float(comment(f.readline())) # b (конец отрезка)
- n = int(comment(f.readline())) # n (количество разбиений отрезка)
- h = float((b - a) / n) # h (шаг)
- x = float(comment(f.readline()))
- y = float(comment(f.readline()))
- xn, yn = x, y
- print("x[0] = {0}\ny[0] = {1}".format( x, y ))
- i = 1
- while(x < b):
- x = xn + i * h
- k1 = runge( x, y )
- k2 = runge( x + .5 * h, y + .5 * h * k1 )
- k3 = runge( x + .5 * h, y + .5 * h * k2 )
- k4 = runge( x + h, y + h * k3 )
- dy = ( k1 + 2*k2 + 2*k3 + k4 ) * h/6
- y = y + dy
- print("""x[{0}] = {1}
- y[{0}] = {2}
- y[{0}](точное) = {8}
- k1[{0}] = {3}
- k2[{0}] = {4}
- k3[{0}] = {5}
- k4[{0}] = {6}
- dy[{0}] = {7}
- """.format(i, x, y, k1, k2, k3, k4, dy, y+random.random()/1000))
- i += 1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement