Advertisement
Guest User

zad2

a guest
Mar 28th, 2020
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.93 KB | None | 0 0
  1. from typing import Tuple
  2.  
  3. import numpy as np
  4.  
  5. np.set_printoptions(precision=3)
  6.  
  7. # parametr
  8.  
  9. n = 0.47124
  10.  
  11. print(f'podpunkt A')
  12.  
  13.  
  14. def interpolacja_liniowa(x, f, xp):
  15. f1 = f[0] + (f[1] - f[0]) / (x[1] - x[0]) * (xp - x[0])
  16. return f1
  17.  
  18.  
  19. x_data = np.array([0, 1.37444679])
  20. f_data = np.array([0, 5.02733949])
  21. oszacowanie = interpolacja_liniowa(x_data, f_data, n)
  22. wartosc_dokladna = 0.50952683754
  23. blad_oszacowania = (wartosc_dokladna - oszacowanie) / wartosc_dokladna * 100
  24. print('Wartość oszacowania w przedziale [0, 1.37444679]: {:.7f}'.format(oszacowanie))
  25. print('Blad oszacowania: {:.2f}%'.format(blad_oszacowania))
  26.  
  27. print(f'podpunkt B')
  28.  
  29.  
  30. def iloraz_roznicowy(fxi, fxj, xi, xj):
  31. df_dx = (fxi - fxj) / (xi - xj)
  32. return df_dx
  33.  
  34.  
  35. f_x1x0 = iloraz_roznicowy(0.41421356, 0, 0.39269908, 0)
  36. f_x2x1 = iloraz_roznicowy(1.00000000, 0.41421356, 0.78539816, 0.39269908)
  37. f_x3x2 = iloraz_roznicowy(5.02733949, 1.00000000, 1.37444679, 0.78539816)
  38.  
  39. print('Iloraz roznicowy pierwszego rzedu [i=0]: {:.3f}'.format(f_x1x0))
  40. print('Iloraz roznicowy pierwszego rzedu [i=1]: {:.3f}'.format(f_x2x1))
  41. print('Iloraz roznicowy pierwszego rzedu [i=2]: {:.3f}'.format(f_x3x2))
  42.  
  43. f_x2x1x0 = iloraz_roznicowy(f_x2x1, f_x1x0, 0.78539816, 0)
  44. f_x3x2x1 = iloraz_roznicowy(f_x3x2, f_x2x1, 1.37444679, 0.39269908)
  45.  
  46. print('Iloraz roznicowy drugiego rzedu [i=0]: {:.3f}'.format(f_x2x1x0))
  47. print('Iloraz roznicowy drugiego rzedu [i=1]: {:.3f}'.format(f_x3x2x1))
  48.  
  49. f_x3x2x1x0 = iloraz_roznicowy(f_x3x2x1, f_x2x1x0, 1.37444679, 0)
  50. print('Iloraz roznicowy trzeciego rzedu [i=0]: {:.3f}'.format(f_x3x2x1x0))
  51.  
  52. x = n
  53. oszacowanie = 0 + f_x1x0 * (x) + f_x2x1x0 * (x) * (x - 0.39269908) + f_x3x2x1x0 * (x) * (x - 0.39269908) * (
  54. x - 0.78539816)
  55. blad_oszacowania = (wartosc_dokladna - oszacowanie) / wartosc_dokladna * 100
  56. print('Wartść oszacowania: {:.7f}'.format(oszacowanie))
  57. print('Blad oszacowania: {:.2f}%'.format(blad_oszacowania))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement