Python最小二乘法矩阵


Posted in Python onJanuary 02, 2019

最小二乘法矩阵

#! /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 相关文章推荐
python批量修改文件后缀示例代码分享
Dec 24 Python
Python减少循环层次和缩进的技巧分析
Mar 15 Python
浅析Python中的getattr(),setattr(),delattr(),hasattr()
Jun 14 Python
Python操作使用MySQL数据库的实例代码
May 25 Python
微信跳一跳自动运行python脚本
Jan 08 Python
使用python采集脚本之家电子书资源并自动下载到本地的实例脚本
Oct 23 Python
python自动循环定时开关机(非重启)测试
Aug 26 Python
VSCode中自动为Python文件添加头部注释
Nov 14 Python
python 检查数据中是否有缺失值,删除缺失值的方式
Dec 02 Python
python getopt模块使用实例解析
Dec 18 Python
Python中私有属性的定义方式
Mar 05 Python
Python局部变量与全局变量区别原理解析
Jul 14 Python
Centos部署django服务nginx+uwsgi的方法
Jan 02 #Python
Python 一句话生成字母表的方法
Jan 02 #Python
使用python将请求的requests headers参数格式化方法
Jan 02 #Python
浅谈python requests 的put, post 请求参数的问题
Jan 02 #Python
Python中出现IndentationError:unindent does not match any outer indentation level错误的解决方法
Apr 18 #Python
Python装饰器语法糖
Jan 02 #Python
Python WEB应用部署的实现方法
Jan 02 #Python
You might like
PHP中strtotime函数使用方法分享
2012/01/10 PHP
php 无法加载mcrypt.dll的解决办法
2013/04/03 PHP
ThinkPHP3.2.2的插件控制器功能简述
2014/07/09 PHP
PHP实现利用MySQL保存session的方法
2014/08/23 PHP
PHP+Ajax实现的博客文章添加类别功能示例
2018/03/29 PHP
图片onload事件触发问题解决方法
2011/07/31 Javascript
javascript椭圆旋转相册实现代码
2012/01/16 Javascript
基于NodeJS的前后端分离的思考与实践(四)安全问题解决方案
2014/09/26 NodeJs
iframe里面的元素触发父窗口元素事件的jquery代码
2014/10/19 Javascript
ECMAScript 5严格模式(Strict Mode)介绍
2015/03/02 Javascript
JavaScript实现标题栏文字轮播效果代码
2015/10/24 Javascript
详解Node.js如何开发命令行工具
2016/08/14 Javascript
NodeJS和BootStrap分页效果的实现代码
2016/11/07 NodeJs
js原生Ajax的封装和原理详解
2017/03/11 Javascript
javascript 开发之网页兼容各种浏览器
2017/09/28 Javascript
React Native验证码倒计时工具类分享
2017/10/24 Javascript
微信小程序wx.getImageInfo()如何获取图片信息
2018/01/26 Javascript
详解vue 数据传递的方法
2018/04/19 Javascript
JS正则表达式封装与使用操作示例
2019/05/15 Javascript
Vue项目接入Paypal实现示例详解
2020/06/04 Javascript
[01:26]DOTA2荣耀之路2:iG,China
2018/05/24 DOTA
Python爬取网易云音乐热门评论
2017/03/31 Python
Python实现曲线拟合操作示例【基于numpy,scipy,matplotlib库】
2018/07/12 Python
在python中使用requests 模拟浏览器发送请求数据的方法
2018/12/26 Python
python实现文件的备份流程详解
2019/06/18 Python
基于python读取.mat文件并取出信息
2019/12/16 Python
python操作toml文件的示例代码
2020/11/27 Python
详解移动端h5页面根据屏幕适配的四种方案
2020/04/15 HTML / CSS
Aveda美国官网:天然护发产品、洗发水、护发素和沙龙
2016/12/09 全球购物
Berghaus官网:户外服装和设备,防水服
2020/01/17 全球购物
晚宴邀请函范文
2014/01/15 职场文书
师德师风建设方案
2014/05/08 职场文书
工会趣味活动方案
2014/08/18 职场文书
2014年科协工作总结
2014/12/09 职场文书
党员剖析材料范文
2014/12/18 职场文书
WCG2010 星际争霸决赛 Flash vs Goojila 1 星际经典比赛回顾
2022/04/01 星际争霸