Advertisement
Pug_coder

Untitled

May 30th, 2023
18
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.12 KB | None | 0 0
  1. import math
  2. import numpy as np
  3.  
  4. # var 23
  5.  
  6.  
  7.  
  8. def main():
  9. m = 4
  10. x = np.array([1.0, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5.0])
  11. n = len(x)
  12. y = np.array([2.57, 2.96, 3.08, 2.56, 3.45, 3.16, 2.99, 4.0, 4.21])
  13. b = [0] * m
  14. for i in range(m):
  15. b[i] = sum(yk * xk ** (i) for xk, yk in zip(x, y))
  16. A = np.array(
  17. [
  18. [sum(x ** (i + j - 2)) for j in range(1, m + 1)]
  19. for i in range(1, m + 1)
  20. ]
  21. )
  22. print("A:", A)
  23. print("b:", b)
  24. l = np.linalg.inv(A) @ b
  25. print("lamda:", l)
  26. s = sum(
  27. (yk - l[0] - l[1] * xk - l[2] * xk ** 2 - l[3] * xk ** 3) ** 2
  28. for xk, yk in zip(x, y)
  29. )
  30. cko = 1 / math.sqrt(n) * math.sqrt(s)
  31. print("standard deviation:", cko)
  32. s = sum(yk ** 2 for yk in y)
  33. delta = cko / math.sqrt(s)
  34. print("delta:", delta)
  35. xx = [0] * (n - 1)
  36. for i in range(1, n):
  37. xx[i - 1] = (x[i] + x[i - 1]) / 2
  38.  
  39. z = [0] * (n - 1)
  40. for i in range(n - 1):
  41. z[i] = l[0] + l[1] * xx[i] + l[2] * xx[i] ** 2 + l[3] * xx[i] ** 3
  42. print("xi", xx[i], "z", z[i])
  43.  
  44.  
  45. main()
  46.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement