中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python最小二乘法矩陣

發布時間:2020-08-21 12:49:37 來源:腳本之家 閱讀:148 作者:staHuri 欄目:開發技術

最小二乘法矩陣

#! /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)

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對億速云的支持。如果你想了解更多相關內容請查看下面相關鏈接

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

望江县| 卢湾区| 南丹县| 舒城县| 尤溪县| 尚志市| 微博| 贵德县| 平乐县| 柘城县| 泊头市| 探索| 邛崃市| 和顺县| 独山县| 博客| 荆州市| 咸丰县| 淮阳县| 客服| 同德县| 专栏| 儋州市| 察隅县| 四平市| 榆社县| 乌审旗| 乐安县| 攀枝花市| 祁连县| 红原县| 越西县| 沅陵县| 广水市| 左权县| 姚安县| 双峰县| 朝阳区| 大冶市| 乌苏市| 余江县|