python 实现matlab左除

import numpy as np

import scipy

def mldivide_new(A,b):

[mm,nn]=np.shape(A)

ss=np.shape(b)[1]

x=np.zeros((nn,ss))

if np.shape(A)[0]==np.shape(A)[1]:

if A==np.tril(A):

for ii in range(ss):

x[:,ii]=backward_sub(A,b[:,ii])

return

elif A==np.triu(A):

for ii in range(ss):

x[:,ii]=backward_sub(A,b[:,ii])

return

else:

if A==A.T:

[R,p]=np.linalg.cholesky(A)

if (p==0):

for ii in range(ss):

x[:,ii]=backward_sub(R,forward_sub(R.T,b[:,ii]))

return

[L,U,P]=scipy.linalg.lu(A)

for ii in range(ss):

x[:,ii]=backward_sub(U,forward_sub(L,P.dot(b[:,ii])))

return

else:

print(np.shape(A))

[Q,R]=np.linalg.qr(A)

Q=np.hstack((Q,np.array([[ii] for ii in Q[:,-1]])))

R=np.vstack((R,R[-1,:]))

Q[np.abs(Q)<=2.261143e-14]=0

R[np.abs(R)<=2.261143e-14]=0

print(np.shape(Q))

print(np.shape(R))

print(Q)

print("R=", R)

for jj in range(ss):

print(np.shape(x))

x1 = backward_sub(R, Q.T.dot(b[:, jj]))

x1=[i[0] for i in x1]

x[:,jj]=x1

return x

return x

def forward_sub(A,b):

[m,n]=np.shape(A)

x=np.zeros((n,1))

for i in range(0,n):

if np.abs(A[i,i])>=2.261143e-14:

x[i]=(b[i]-A[i,0:i-1].dot(x[0,i-1]))/A[i,i]

elif b[i]-A[i,0:i-1].dot(x[0:i-1])==0:

x[i]=0

return x

def backward_sub(A,b):

[m, n] = np.shape(A)

x = np.zeros((n, 1))

for i in range(n-1,-1,-1):

print(int(A[i,i]))

print(type(A[i,i]))

if int(A[i,i])!=0:

x[i]=(b[i]-A[i,i+1:-1].dot(x[i+1:-1]))/A[i,i]

elif b[i]-A[i,i+1:-1].dot(x[i+1:-1])==0:

x[i]=0

return x

if __name__=='__main__':

A=np.ones((10,9))*10

B=np.ones((10,3))*3

x=mldivide_new(A,B)

print(x)

这里面应该有bug,请大神们,指点一二。

点赞

收藏

分享

文章举报

qestion_yz_10086

发布了69 篇原创文章 · 获赞 2 · 访问量 1662

私信

关注

matlab左除怎么输入法,python 实现matlab左除相关推荐

  1. python版本和Matlab版本对应的关系,python调用matlab

    调用的话参考 https://blog.csdn.net/m0_37316917/article/details/90256563 https://zhuanlan.zhihu.com/p/67127 ...

  2. 物理学常数 matlab,[转载]科学计算:Python VS. MATLAB(6)----物理常数

    科学计算:Python VS. MATLAB(6)----物理常数 物理常数亦被称为物理学常量或自然常数,指的是物理学中数值固定不变的物理量,是一个与物理测量无关的固定值.物理常数有很多,其中比较著名 ...

  3. matlab filter函数原理,基于python实现matlab filter函数过程详解

    matlab中的filter函数: y = filter(b,a,x) python实现matlab中的filter函数 def filter_matlab(b,a,x): y = [] y.appe ...

  4. matlab tic toc 分段计时,Python模仿matlab的tic/toc计时

    python有自己的timeit模块,但是用惯了matlab的tic/toc,模仿了一个,需要用到globals()函数. python有自己的timeit模块,但是用惯了matlab的tic/toc ...

  5. matlab读取plt文件吗,Python使用Matlab命令过程解析

    为了在python中使用matlab命令,也就是import numpy as np 和 import matplotlib.pyplot as plt这两个命令能运行,需要在cmd命令窗口输入 pi ...

  6. Python与Matlab算法学习一文通(快速排序算法)(更新中)

    想利用一些空余时间学一学python与matlab,与同学建立不知道能坚持多久的学习联盟,每周一部分题目,利用一周时间完成原理文档与程序编写.由于主要研究方向为其他方向,因此只会利用很少的空闲时间来学 ...

  7. 聚类的外部指标(Purity, ARI, NMI, ACC) 和内部指标(NCC,Entropy,Compactness,Silhouette Index),附代码 (Python 和 Matlab)

    聚类性能评估的外部指标和内部指标,附代码 (Python 和 Matlab) 文章目录 聚类性能评估的外部指标和内部指标,附代码 (Python 和 Matlab) 1 外部指标 1.1 Purity ...

  8. python矩阵左除_技术图文:Matlab VS. Numpy 矩阵基本运算

    背景 前段时间在知识星球上立了一个Flag,至少写10篇关于 Python,Matlab 和 C# 对比的总结. 这是第 3 篇,对比 Matlab 与 Numpy 在矩阵基本运算方面的区别与联系. ...

  9. 范德蒙德矩阵在MATLAB中怎么表示,Python 之 Python与MATLAB 矩阵操作总结

    Python 之 Python与MATLAB 矩阵操作小结 一.线形代数理论基础 线形代数(linear algebra)是数学的一个分支,研究矩阵理论.向量空间.线性变换和有限维线形方程组等内容. ...

最新文章

  1. iOS常用第三方开源框架和优秀开发者博客等
  2. 区块链今年,胜过过去十年
  3. Spring3 表达式语言(SpEL)介绍
  4. 使用自定义的按钮替换默认的input type='file'
  5. 全球及中国新鲜芒果制品市场投资份额与营销渠道分析报告2022版
  6. 浅聊程序化世界构建流程
  7. linux中临时、永久修改ip
  8. 第12秒做视频封面:阿里云视频截帧功能
  9. Linux hypervisor VMM介绍
  10. LayUI2.2.5中文离线文档(免费免费免费)
  11. 微信360全景图片怎么制作?
  12. 虚拟串口服务器连接485转网口,串口服务器 串口转以太网 RS232转以太网 485转以太网 串口转网口...
  13. 【过关斩将】面试官的八个举动,暗示你已经通过了面试
  14. tar压缩和解压文件或文件夹
  15. Falsy Bouncer(算法)
  16. 观《五星大饭店》有感
  17. 2023最新最新ChatGPT超全面从基础到实战视频教程/有兴趣自己学
  18. MySQL数据库中如何查询分组后每组中的最后一条记录?
  19. 微信视频号视频怎么下载?
  20. Navicat导出错误(ORA-00911: invalid character)

热门文章

  1. python函数代码,这个python函数代码如何工作?
  2. httpget请求设置长度_Citrix ADCHTTP请求Smuggling详解
  3. QT中如何实现Thread与GUI的主线程连通
  4. 神经元与网络结构概论
  5. oracle 多路径 SAN,前言 - Oracle Solaris 管理:SAN 配置和多路径
  6. vue如何在手机上查看vue-cli构建的项目
  7. 如何提高缓存命中率(Redis)
  8. Oracle读书笔记
  9. 前端综合性文档和教程总结(持续更新)
  10. PostgreSQL的执行计划分析