最小二乘法矩陣
創新互聯成立與2013年,先為陽高等服務建站,陽高等地企業,進行企業商務咨詢服務。為陽高企業網站制作PC+手機+微官網三網同步一站式服務解決您的所有建站問題。#! /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)
網站欄目:Python最小二乘法矩陣-創新互聯
標題鏈接:http://m.newbst.com/article22/hjscc.html
成都網站建設公司_創新互聯,為您提供定制網站、網站維護、網站營銷、做網站、關鍵詞優化、電子商務
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯