Python最小二乘法矩陣
最小二乘法矩陣
#! /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坐標(biāo)
: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)
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接
相關(guān)文章
pandas?dataframe?drop函數(shù)介紹
這篇文章主要介紹了pandas?dataframe?drop函數(shù)介紹,文章通圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-09-09
Python實現(xiàn)讀取目錄所有文件的文件名并保存到txt文件代碼
這篇文章主要介紹了Python實現(xiàn)讀取目錄所有文件的文件名并保存到txt文件代碼,本文分別使用os.listdir和os.walk實現(xiàn)給出兩段實現(xiàn)代碼,需要的朋友可以參考下2014-11-11
Linux下把Python3設(shè)為默認(rèn)Python版本的三種方法
這篇文章主要給大家介紹了關(guān)于Linux下把Python3設(shè)為默認(rèn)Python版本的三種方法,在大部分開發(fā)過程中,我們需要使用到python3進行測試,于是下載安裝python3,近乎是一種剛需,至于設(shè)置默認(rèn)python指向python3可以參考本文2023-09-09
Python ORM框架SQLAlchemy學(xué)習(xí)筆記之安裝和簡單查詢實例
這篇文章主要介紹了Python ORM框架SQLAlchemy學(xué)習(xí)筆記之安裝和簡單查詢實例,簡明入門教程,需要的朋友可以參考下2014-06-06
Python連接mssql數(shù)據(jù)庫編碼問題解決方法
這篇文章主要介紹了Python連接mssql數(shù)據(jù)庫編碼問題解決方法,本文方法同樣適用mysql、sqllite、mongodb等數(shù)據(jù)庫,需要的朋友可以參考下2015-01-01
Python?Pipeline處理數(shù)據(jù)工作原理探究
如果你是一個Python開發(fā)者,你可能聽過"pipeline"這個術(shù)語,但?pipeline?到底是什么,它又有什么用呢?在這篇文章中,我們將探討?Python?中的?pipeline?概念,它們是如何工作的,以及它們?nèi)绾螏椭憔帉懜逦?、更高效的代碼2024-01-01

