Advertisement
Guest User

zad1

a guest
Mar 28th, 2020
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.21 KB | None | 0 0
  1. import numpy as np
  2.  
  3. np.set_printoptions(precision=3)
  4.  
  5. #parametr
  6.  
  7. n=13
  8.  
  9.  
  10. print(f'podpunkt A')
  11.  
  12. def interpolacja_liniowa(x, f, xp):
  13. f1 = f[0] + (f[1] - f[0])/(x[1] - x[0]) * (xp - x[0])
  14. return f1
  15.  
  16. x_data = np.array([1, 40])
  17. f_data = np.array([0, 3.68887945])
  18. oszacowanie = interpolacja_liniowa(x_data, f_data, n)
  19. wartosc_dokladna = 2.56494935746
  20. blad_oszacowania = (wartosc_dokladna - oszacowanie)/wartosc_dokladna * 100
  21. print('Wartść oszacowania w przedziale [1, 40]: {:.7f}'.format(oszacowanie))
  22. print('Blad oszacowania: {:.2f}%'.format(blad_oszacowania))
  23.  
  24. print(f'podpunkt B')
  25.  
  26. def interpolacja_kwadratowa(x, f, xp):
  27. b0 = f[0]
  28. b1 = (f[1] - f[0]) / (x[1] - x[0])
  29. b2 = ((f[2] - f[1]) / (x[2] - x[1]) - (f[1] - f[0]) / (x[1] - x[0])) / (x[2] - x[0])
  30. f2 = b0 + b1 * (xp - x[0]) + b2 * (xp - x[0]) * (xp - x[1])
  31. return f2
  32.  
  33. x_data = np.array([1, 35, 40])
  34. f_data = np.array([0, 3.55534806, 3.68887945])
  35. oszacowanie = interpolacja_kwadratowa(x_data, f_data, n)
  36. blad_oszacowania = (wartosc_dokladna - oszacowanie)/wartosc_dokladna * 100
  37. print('Wartść oszacowania w przedziale [0, 40]: {:.7f}'.format(oszacowanie))
  38. print('Blad oszacowania: {:.2f}%'.format(blad_oszacowania))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement