最小二乘法矩陣

#! /usr/bin/env python
# -*- coding: utf-8 -*-
import numpy as np
def calc_left_k_mat(k):
"""
獲得左側(cè)k矩陣
:param k:
:return:
"""
k_mat = []
for i in range(k + 1):
now_line = []
for j in range(k + 1):
now_line.append(j + i)
k_mat.append(now_line)
return k_mat
def calc_right_k_mat(k):
"""
計算右側(cè)矩陣
:param k:
:return:
"""
k_mat = []
for i in range(k + 1):
k_mat.append([i, i + 1])
return k_mat
def pow_k(x, k):
"""
計算x列表中的k次方和
:param x: 點集合的x坐標
:param k: k值
:return:
"""
sum = 0
for i in x:
sum += i ** k
return sum
def get_left_mat_with_x(k_mat, k):
"""
將 左側(cè)k矩陣運算得到左側(cè)新的矩陣
:param k_mat:
:param k:
:return:
"""
left_mat = []
for kl in k_mat:
now_data = []
for k in kl:
now_data.append(pow_k(x, k))
left_mat.append(now_data)
return left_mat
def get_right_mat_with(right_k_mat):
"""
將 右側(cè)k矩陣運算得到右側(cè)新的矩陣
:param right_k_mat:
:return:
"""
right_mat = []
for i in range(len(right_k_mat)):
sum = 0
for xL, yL in zip(x, y):
a = (xL ** right_k_mat[i][0]) * (yL ** right_k_mat[i][1])
sum += a
right_mat.append(sum)
return right_mat
def fuse_mat(left, right):
"""
融合兩個矩陣
:param left:
:param right:
:return:
"""
new_mat = []
for i in range(len(left)):
asd = np.append(left[i], right[i])
new_mat.append(list(asd))
return new_mat
if __name__ == '__main__':
k = 3
x = [1, 2, 3]
y = [1, 2, 3]
# 計算原始左側(cè)K矩陣
left_k_mat = calc_left_k_mat(k)
print("原始左側(cè)K矩陣")
print(left_k_mat)
# 計算原始右側(cè)K矩陣
right_k_mat = calc_right_k_mat(k)
print("原始右側(cè)k矩陣")
print(right_k_mat)
# 計算左側(cè) k 矩陣
new_left_mat = get_left_mat_with_x(k_mat=left_k_mat, k=k)
# 計算右側(cè) k 矩陣
new_right_mat = get_right_mat_with(right_k_mat=right_k_mat)
print("計算后左側(cè)K矩陣")
print(new_left_mat)
print("計算后右側(cè)側(cè)K矩陣")
print(new_right_mat)
print("-----" * 10)
# 融合兩個矩陣 左側(cè) 矩陣每一行增加 右側(cè)矩陣的對應(yīng)行
new_all = fuse_mat(new_left_mat, new_right_mat)
print("完整矩陣")
print(new_all)
網(wǎng)站欄目:Python最小二乘法矩陣-創(chuàng)新互聯(lián)
標題鏈接:http://chinadenli.net/article22/hjscc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、網(wǎng)站維護、網(wǎng)站營銷、做網(wǎng)站、關(guān)鍵詞優(yōu)化、電子商務(wù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容