题目来自高级编程课程的课件。
# 10.1 Least squares
from scipy.optimize import least_squares
import numpy as np
n = 5
m = 8
A = []
for i in range(n):
temp = []
for j in range(m):
temp += [np.random.randint(1, 100)]
A += [temp]
print("A:")
for i in A:
print(i)
b = []
for j in range(n):
b += [np.random.randint(1, 100)]
print("b:")
print(b)
x = [0, 0, 0, 0, 0, 0, 0, 0]
def func(x):
return np.linalg.norm(np.matmul(A, x)-np.array(b))
solutions = least_squares(func, x)
print("solution:")
print(solutions.x)
print("residual:")
print(func(solutions.x))
输出:
A:
[3, 78, 35, 57, 43, 4