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): """ 計(jì)算右側(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): """ 計(jì)算x列表中的k次方和 :param x: 點(diǎn)集合的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矩陣運(yùn)算得到左側(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矩陣運(yùn)算得到右側(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): """ 融合兩個(gè)矩陣 :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] # 計(jì)算原始左側(cè)K矩陣 left_k_mat = calc_left_k_mat(k) print("原始左側(cè)K矩陣") print(left_k_mat) # 計(jì)算原始右側(cè)K矩陣 right_k_mat = calc_right_k_mat(k) print("原始右側(cè)k矩陣") print(right_k_mat) # 計(jì)算左側(cè) k 矩陣 new_left_mat = get_left_mat_with_x(k_mat=left_k_mat, k=k) # 計(jì)算右側(cè) k 矩陣 new_right_mat = get_right_mat_with(right_k_mat=right_k_mat) print("計(jì)算后左側(cè)K矩陣") print(new_left_mat) print("計(jì)算后右側(cè)側(cè)K矩陣") print(new_right_mat) print("-----" * 10) # 融合兩個(gè)矩陣 左側(cè) 矩陣每一行增加 右側(cè)矩陣的對(duì)應(yīng)行 new_all = fuse_mat(new_left_mat, new_right_mat) print("完整矩陣") print(new_all)
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
相關(guān)文章
Python提取特定時(shí)間段內(nèi)數(shù)據(jù)的方法實(shí)例
今天小編就為大家分享一篇關(guān)于Python提取特定時(shí)間段內(nèi)數(shù)據(jù)的方法實(shí)例,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-04-04基于Python實(shí)現(xiàn)一個(gè)簡(jiǎn)單的學(xué)生管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了如何利用python實(shí)現(xiàn)簡(jiǎn)單的學(xué)生信息管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-12-12Django DRF路由與擴(kuò)展功能的實(shí)現(xiàn)
這篇文章主要介紹了Django DRF路由與擴(kuò)展功能的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06一文帶你掌握Python內(nèi)置reversed函數(shù)的使用
Python作為一門(mén)強(qiáng)大的編程語(yǔ)言,提供了許多內(nèi)置函數(shù)來(lái)處理各種數(shù)據(jù)結(jié)構(gòu)和對(duì)象,本文將詳細(xì)探討reversed函數(shù)的用法、示例代碼以及實(shí)際應(yīng)用場(chǎng)景,需要的可以參考下2024-01-01python調(diào)用其他文件函數(shù)或類的示例
今天小編就為大家分享一篇python調(diào)用其他文件函數(shù)或類的示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-07-07python調(diào)用Matplotlib繪制分布點(diǎn)圖
這篇文章主要為大家詳細(xì)介紹了python調(diào)用Matplotlib繪制分布點(diǎn)圖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-10-10python監(jiān)控nginx端口和進(jìn)程狀態(tài)
這篇文章主要為大家詳細(xì)介紹了python監(jiān)控nginx端口和進(jìn)程狀態(tài),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-09-09