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连接mysql并提交mysql事务示例
Mar 05 Python
解析Python编程中的包结构
Oct 25 Python
Python实现简单的多任务mysql转xml的方法
Feb 08 Python
Python的爬虫框架scrapy用21行代码写一个爬虫
Apr 24 Python
Python切片工具pillow用法示例
Mar 30 Python
Python实现的knn算法示例
Jun 14 Python
python全栈要学什么 python全栈学习路线
Jun 28 Python
Django Rest framework认证组件详细用法
Jul 25 Python
Python实现i人事自动打卡的示例代码
Jan 09 Python
Python表达式的优先级详解
Feb 18 Python
Python lambda表达式原理及用法解析
Aug 18 Python
python如何写个俄罗斯方块
Nov 06 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
BBS(php & mysql)完整版(六)
2006/10/09 PHP
php 特殊字符处理函数
2008/09/05 PHP
php checkbox 取值详细说明
2010/08/19 PHP
PHP学习笔记 (1) 环境配置与代码调试
2011/06/19 PHP
详解php的魔术方法__get()和__set()使用介绍
2012/09/19 PHP
PHP四舍五入、取整、round函数使用示例
2015/02/06 PHP
PHP数字金额转换成中文大写显示
2019/01/05 PHP
基于PHP实现堆排序原理及实例详解
2020/06/19 PHP
List the Codec Files on a Computer
2007/06/18 Javascript
DOM下的节点属性和操作小结
2009/05/14 Javascript
用js判断页面刷新或关闭的方法(onbeforeunload与onunload事件)
2012/06/22 Javascript
如何将JS的变量值传递给ASP变量
2012/12/10 Javascript
关于scrollLeft,scrollTop的浏览器兼容性测试
2013/03/19 Javascript
Jquery通过Ajax访问XML数据的小例子
2013/11/18 Javascript
JavaScript/Js脚本处理html元素的自定义属性解析(亲测兼容Firefox与IE)
2013/11/25 Javascript
JS实现窗口加载时模拟鼠标移动的方法
2015/06/03 Javascript
基于js实现投票的实例代码
2015/08/04 Javascript
JavaScript的设计模式经典之代理模式
2016/02/24 Javascript
网页挂马方式整理及详细介绍
2016/11/03 Javascript
Bootstrap3下拉菜单的实现
2017/02/22 Javascript
nodejs连接mysql数据库简单封装示例-mysql模块
2017/04/10 NodeJs
详解如何在nuxt中添加proxyTable代理
2018/08/10 Javascript
webpack结合express实现自动刷新的方法
2019/05/07 Javascript
JS回调函数简单易懂的入门实例分析
2019/09/29 Javascript
JS addEventListener()和attachEvent()方法实现注册事件
2021/01/11 Javascript
Python学习笔记之常用函数及说明
2014/05/23 Python
Python对象体系深入分析
2014/10/28 Python
python输出100以内的质数与合数实例代码
2018/07/08 Python
Python引用计数操作示例
2018/08/23 Python
Anaconda和ipython环境适配的实现
2020/04/22 Python
2014最新版群众路线四风整改措施
2014/09/24 职场文书
2014年出纳工作总结与计划
2014/12/09 职场文书
世界遗产导游词
2015/02/13 职场文书
欠款起诉书范文
2015/05/19 职场文书
吴仁宝观后感
2015/06/09 职场文书
教你怎么用PyCharm为同一服务器配置多个python解释器
2021/05/31 Python