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实现将16进制字符串转化为ascii字符的方法分析
Jul 21 Python
python实现聊天小程序
Mar 13 Python
python傅里叶变换FFT绘制频谱图
Jul 19 Python
Django ModelForm组件使用方法详解
Jul 23 Python
python使用PIL和matplotlib获取图片像素点并合并解析
Sep 10 Python
Python字符串、列表、元组、字典、集合的补充实例详解
Dec 20 Python
pytorch 彩色图像转灰度图像实例
Jan 13 Python
python爬取本站电子书信息并入库的实现代码
Jan 20 Python
python字符串下标与切片及使用方法
Feb 13 Python
解决Tkinter中button按钮未按却主动执行command函数的问题
May 23 Python
Python语言规范之Pylint的详细用法
Jun 24 Python
简单谈谈Python面向对象的相关知识
Jun 28 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
外媒评选出10支2020年最受欢迎的Dota2战队
2021/03/05 DOTA
攻克CakePHP系列三 表单数据增删改
2008/10/22 PHP
PHP XML备份Mysql数据库
2009/05/27 PHP
PHP中10个不常见却非常有用的函数
2010/03/21 PHP
PHP中将网页导出为Word文档的代码
2012/05/25 PHP
php生成局部唯一识别码LUID的代码
2012/10/06 PHP
php中的四舍五入函数代码(floor函数、ceil函数、round与intval)
2014/07/14 PHP
php异步多线程swoole用法实例
2014/11/14 PHP
Zend Framework教程之模型Model基本规则和使用方法
2016/03/04 PHP
支持汉转拼和拼音分词的PHP中文工具类ChineseUtil
2018/02/23 PHP
php与阿里云短信接口接入操作案例分析
2020/05/27 PHP
javascript 鼠标滚轮事件
2009/04/09 Javascript
jquery 事件对象属性小结
2010/04/27 Javascript
JavaScript中数组对象的那些自带方法介绍
2013/03/12 Javascript
解析javascript系统错误:-1072896658的解决办法
2013/07/08 Javascript
Bootstrap表单布局样式代码
2016/05/31 Javascript
js输出数据精确到小数点后n位代码
2016/07/02 Javascript
jQuery常见的选择器及用法介绍
2016/12/20 Javascript
详解js中Array的方法及技巧
2018/09/12 Javascript
微信小程序列表中item左滑删除功能
2018/11/07 Javascript
Vue优化:常见会导致内存泄漏问题及优化详解
2020/08/04 Javascript
通过实例解析jQ Ajax操作相关原理
2020/09/23 Javascript
python实现的系统实用log类实例
2015/06/30 Python
利用python将pdf输出为txt的实例讲解
2018/04/23 Python
python多线程案例之多任务copy文件完整实例
2019/10/29 Python
Python Django中的STATIC_URL 设置和使用方式
2020/03/27 Python
使用CSS3制作响应式导航菜单的方法
2015/07/12 HTML / CSS
html5+css如何实现中间大两头小的轮播效果
2018/12/06 HTML / CSS
CAT鞋美国官网:CAT Footwear
2017/11/27 全球购物
急诊科护士自我鉴定
2013/10/14 职场文书
品质主管岗位职责
2014/03/16 职场文书
应聘英语教师求职信
2014/04/24 职场文书
中华魂演讲稿
2014/05/13 职场文书
群众路线教育实践活动剖析材料
2014/09/30 职场文书
六查六看个人剖析材料
2014/10/14 职场文书
党务工作者主要事迹材料
2015/11/03 职场文书