matlab lu解线性方程,LU分解和求解线性方程组

# coding:utf8

import numpy as np

def lu(mat):

r,c=np.shape(mat)

s=min(r,c)

for k in range(s):

x=1.0/mat[k][k] # 将后续除法变成乘法

for i in range(k+1,r):

mat[i][k]=mat[i][k]*x # L[1:][0]*U[0][0]=A[1:][0];A[0][:]=mat[0][:]

for i in range(k+1,r):

for j in range(k+1,c):

# U[1][2]*L[1][1]=A[1][2]-U[0][2]*L[1][0];L[1][1]=1

# L[2][1]*U[1][1]=A[2][1]-U[0][1]*L[2][0];下一个k时mat[i][j]/mat[k][k](i>j)

mat[i][j]=mat[i][j]-mat[k][j]*mat[i][k]

return mat,c

def solve(A,b):

mat,n=lu(A) # LU合并

print mat # [[16, 4, 8], [0.25, 4.0, -6.0], [0.5, -1.5, 9.0]]

Z= np.zeros(n) # L*Z=b U*X=Z

X= np.zeros(n)

Z[0]=b[0]

for i in range(1,n):

sumup=0

for tmp in range(0,i):

sumup+=mat[i][tmp]*Z[tmp]

Z[i]=(b[i]-sumup)

X[n-1]=Z[n-1]/mat[n-1][n-1]

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

sumup=0

for tmp in range(i+1,n):

sumup+=mat[i][tmp]*X[tmp]

X[i]=(Z[i]-sumup)/mat[i][i]

return X

A=[[16,4,8],[4,5,-4],[8,-4,22]]

y=[-4,3,10]

print "The result of the fomula is:"+str(solve(A,y)) # [-2.25 4. 2. ]

【原创】开源Math.NET基础数学类库使用(06)直接求解线性方程组

本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新  开源Math.NET基础数学类库使用总目录:[目录]开源Math.NET基础数学类库使用总目录 前言 ...

线性代数笔记10——矩阵的LU分解

在线性代数中, LU分解(LU Decomposition)是矩阵分解的一种,可以将一个矩阵分解为一个单位下三角矩阵和一个上三角矩阵的乘积(有时是它们和一个置换矩阵的乘积).LU分解主要应用在数值分析 ...

matlab 求解线性方程组之LU分解

线性代数中的一个核心思想就是矩阵分解,既将一个复杂的矩阵分解为更简单的矩阵的乘积.常见的有如下分解: LU分解:A=LU,A是m×n矩阵,L是m×m下三角矩阵,U是m×n阶梯形矩阵 QR分解: 秩分解 ...

MATLAB矩阵的LU分解及在解线性方程组中的应用

作者:凯鲁嘎吉 - 博客园http://www.cnblogs.com/kailugaji/ 三.实验程序 五.解答(按如下顺序提交电子版) 1.(程序) (1)LU分解源程序: function [ ...

计算方法 -- 解线性方程组直接法(LU分解、列主元高斯消元、追赶法)

#include #include #include #include

LU分解(2)

接着上次LU分解的讲解,这次给出使用不同的计算LU分解的方法,这种方法称为基于GaxPy的计算方法.这里需要了解lapapck中的一些函数.lapack中有一个函数名为gaxpy,所对应的矩阵计算公式 ...

矩阵分解---QR正交分解,LU分解

相关概念: 正交矩阵:若一个方阵其行与列皆为正交的单位向量,则该矩阵为正交矩阵,且该矩阵的转置和其逆相等.两个向量正交的意思是两个向量的内积为 0 正定矩阵:如果对于所有的非零实系数向量x ,都有 x ...

矩阵LU分解分块算法实现

本文主要描述实现LU分解算法过程中遇到的问题及解决方案,并给出了全部源代码. 1. 什么是LU分解? 矩阵的LU分解源于线性方程组的高斯消元过程.对于一个含有N个变量的N个线性方程组,总可以用高斯消去 ...

LU分解,Javascript代码

///A 为矩阵,这里写成一维数组,如 [1],[1,2,3,4] function GetLU(a) { var n = a.length;//矩阵的总数据数目 var s = Math.sqrt( ...

随机推荐

避免调试代码导致IE出错

记录一下 if(!window.console){ var names = ["log", "debug", "info", "w ...

ASP.NET MVC 6 一些不晓得的写法

今天在看 Scott Guthrie 的一篇博文,在 MVC 6 中,发现有些之前不晓得的写法,这边简单记录下,算是对自己知识的补充,有些我并 ...

《python核心编程》笔记——文件的创建、读取和显示

创建文件(makeTextFile.py)脚本提醒用户输入一个尚不存在的文件名,然后由用户输入文件每一行,最后将所有文本写入文本文件 #!/usr/bin/env python 'makeTextFi ...

android: SQLite删除数据

删除数据对你来说应该就更简单了,因为它所需要用到的知识点你全部已经学过了. SQLiteDatabase 中提供了一个 delete()方法专门用于删除数据,这个方法接收三个参数,第一 个参数仍然是表 ...

在eclipse中进行Struts2项目的配置

Struts2是一个比较出色的基于MVC设计模式的框架,是由Struts1和WebWork发展而来的,性能也比较稳定,现在是Apache软件基金会的一个项目,下面就来配置Struts2进行初始化的开发 ...

Winform(C#)限制程序只运行一个实例

C#控制只运行开启一个程序 在这个例子中不需要调用ReleaseMutex,mutex会在程序结束时自动释放.为了防止mutex过早释放,在程序的最后调用下GC.KeepAlive (mutex). ...

CentOS 6.*通过yum安装 MySQL-5.5

转自https://www.cnblogs.com/wsl222000/p/5445768.html 1.安装mysql-5.5的yum源 rpm -ivh http://repo.mysql.com ...

Afinal加载网络图片及下载文件使用方法

Afinal快速开发框架使用起来非常方便,下面将讲解如何利用Afinal加载网络图片及下载文件: 先看效果图: 注意:使用Afinal前需添加Afinal的jar,可以在这里下载:http://dow ...

使用本机IP调试web项目

1.查看本机IP 使用命令行查看本机ip地址: cmd 进入命令行  Ipconfig 查询本机ip. 2.找到启动项目的配置文件  启动IIS查找配置文件的位置 点击显示所有应用程序   3.修改项 ...

Android 8.0+ 更新安装apk失败的问题

最近做项目发现Android 8.0+ 更新安装apk时 出现安装失败的情况  总结原因是 缺少安装的权限 Android 8.0 (Android O)为了针对一些流氓软件引导用户安装其他无关应用. ...

你可能感兴趣的:(matlab,lu解线性方程)