Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import math
- import numpy as np
- # var 23
- def main():
- m = 4
- x = np.array([1.0, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5.0])
- n = len(x)
- y = np.array([2.57, 2.96, 3.08, 2.56, 3.45, 3.16, 2.99, 4.0, 4.21])
- b = [0] * m
- for i in range(m):
- b[i] = sum(yk * xk ** (i) for xk, yk in zip(x, y))
- A = np.array(
- [
- [sum(x ** (i + j - 2)) for j in range(1, m + 1)]
- for i in range(1, m + 1)
- ]
- )
- print("A:", A)
- print("b:", b)
- l = np.linalg.inv(A) @ b
- print("lamda:", l)
- s = sum(
- (yk - l[0] - l[1] * xk - l[2] * xk ** 2 - l[3] * xk ** 3) ** 2
- for xk, yk in zip(x, y)
- )
- cko = 1 / math.sqrt(n) * math.sqrt(s)
- print("standard deviation:", cko)
- s = sum(yk ** 2 for yk in y)
- delta = cko / math.sqrt(s)
- print("delta:", delta)
- xx = [0] * (n - 1)
- for i in range(1, n):
- xx[i - 1] = (x[i] + x[i - 1]) / 2
- z = [0] * (n - 1)
- for i in range(n - 1):
- z[i] = l[0] + l[1] * xx[i] + l[2] * xx[i] ** 2 + l[3] * xx[i] ** 3
- print("xi", xx[i], "z", z[i])
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement