Python最小二乘法矩陣
更新時間:2019年01月02日 15:03:29 作者:staHuri
今天小編就為大家分享一篇關于Python最小二乘法矩陣,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
最小二乘法矩陣
#! /usr/bin/env python
# -*- coding: utf-8 -*-
import numpy as np
def calc_left_k_mat(k):
"""
獲得左側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):
"""
計算右側矩陣
: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):
"""
將 左側k矩陣運算得到左側新的矩陣
: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):
"""
將 右側k矩陣運算得到右側新的矩陣
: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]
# 計算原始左側K矩陣
left_k_mat = calc_left_k_mat(k)
print("原始左側K矩陣")
print(left_k_mat)
# 計算原始右側K矩陣
right_k_mat = calc_right_k_mat(k)
print("原始右側k矩陣")
print(right_k_mat)
# 計算左側 k 矩陣
new_left_mat = get_left_mat_with_x(k_mat=left_k_mat, k=k)
# 計算右側 k 矩陣
new_right_mat = get_right_mat_with(right_k_mat=right_k_mat)
print("計算后左側K矩陣")
print(new_left_mat)
print("計算后右側側K矩陣")
print(new_right_mat)
print("-----" * 10)
# 融合兩個矩陣 左側 矩陣每一行增加 右側矩陣的對應行
new_all = fuse_mat(new_left_mat, new_right_mat)
print("完整矩陣")
print(new_all)
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關內容請查看下面相關鏈接
相關文章
pandas?dataframe?drop函數(shù)介紹
這篇文章主要介紹了pandas?dataframe?drop函數(shù)介紹,文章通圍繞主題展開詳細的內容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-09-09
Python實現(xiàn)讀取目錄所有文件的文件名并保存到txt文件代碼
這篇文章主要介紹了Python實現(xiàn)讀取目錄所有文件的文件名并保存到txt文件代碼,本文分別使用os.listdir和os.walk實現(xiàn)給出兩段實現(xiàn)代碼,需要的朋友可以參考下2014-11-11
Linux下把Python3設為默認Python版本的三種方法
這篇文章主要給大家介紹了關于Linux下把Python3設為默認Python版本的三種方法,在大部分開發(fā)過程中,我們需要使用到python3進行測試,于是下載安裝python3,近乎是一種剛需,至于設置默認python指向python3可以參考本文2023-09-09
Python ORM框架SQLAlchemy學習筆記之安裝和簡單查詢實例
這篇文章主要介紹了Python ORM框架SQLAlchemy學習筆記之安裝和簡單查詢實例,簡明入門教程,需要的朋友可以參考下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"這個術語,但?pipeline?到底是什么,它又有什么用呢?在這篇文章中,我們將探討?Python?中的?pipeline?概念,它們是如何工作的,以及它們如何幫助你編寫更清晰、更高效的代碼2024-01-01

