当前位置: 首页 > news >正文

南京城乡住房建设厅网站wordpress文章模板下载

南京城乡住房建设厅网站,wordpress文章模板下载,福州网站专业建设,虚拟机下载手机版文章目录 1 线性系统2 高斯-jordon消元法的实现2.1 Matrix2.2 Vector2.3 线性系统 3 行最简形式4 线性方程组的结构5 线性方程组-通用高斯消元的实现5.1 global5.2 Vector-引入is_zero5.3 LinearSystem5.4 main 1 线性系统 2 高斯-jordon消元法的实现 2.1 Matrix from .Vecto… 文章目录 1 线性系统2 高斯-jordon消元法的实现2.1 Matrix2.2 Vector2.3 线性系统 3 行最简形式4 线性方程组的结构5 线性方程组-通用高斯消元的实现5.1 global5.2 Vector-引入is_zero5.3 LinearSystem5.4 main 1 线性系统 2 高斯-jordon消元法的实现 2.1 Matrix from .Vector import Vectorclass Matrix:def __init__(self, list2d):self._values [row[:] for row in list2d]classmethoddef zero(cls, r, c):返回一个r行c列的零矩阵return cls([[0] * c for _ in range(r)])classmethoddef identity(cls, n):返回一个n行n列的单位矩阵m [[0]*n for _ in range(n)]for i in range(n):m[i][i] 1;return cls(m)def T(self):返回矩阵的转置矩阵return Matrix([[e for e in self.col_vector(i)]for i in range(self.col_num())])def __add__(self, another):返回两个矩阵的加法结果assert self.shape() another.shape(), \Error in adding. Shape of matrix must be same.return Matrix([[a b for a, b in zip(self.row_vector(i), another.row_vector(i))]for i in range(self.row_num())])def __sub__(self, another):返回两个矩阵的减法结果assert self.shape() another.shape(), \Error in subtracting. Shape of matrix must be same.return Matrix([[a - b for a, b in zip(self.row_vector(i), another.row_vector(i))]for i in range(self.row_num())])def dot(self, another):返回矩阵乘法的结果if isinstance(another, Vector):# 矩阵和向量的乘法assert self.col_num() len(another), \Error in Matrix-Vector Multiplication.return Vector([self.row_vector(i).dot(another) for i in range(self.row_num())])if isinstance(another, Matrix):# 矩阵和矩阵的乘法assert self.col_num() another.row_num(), \Error in Matrix-Matrix Multiplication.return Matrix([[self.row_vector(i).dot(another.col_vector(j)) for j in range(another.col_num())]for i in range(self.row_num())])def __mul__(self, k):返回矩阵的数量乘结果: self * kreturn Matrix([[e * k for e in self.row_vector(i)]for i in range(self.row_num())])def __rmul__(self, k):返回矩阵的数量乘结果: k * selfreturn self * kdef __truediv__(self, k):返回数量除法的结果矩阵self / kreturn (1 / k) * selfdef __pos__(self):返回矩阵取正的结果return 1 * selfdef __neg__(self):返回矩阵取负的结果return -1 * selfdef row_vector(self, index):返回矩阵的第index个行向量return Vector(self._values[index])def col_vector(self, index):返回矩阵的第index个列向量return Vector([row[index] for row in self._values])def __getitem__(self, pos):返回矩阵pos位置的元素r, c posreturn self._values[r][c]def size(self):返回矩阵的元素个数r, c self.shape()return r * cdef row_num(self):返回矩阵的行数return self.shape()[0]__len__ row_numdef col_num(self):返回矩阵的列数return self.shape()[1]def shape(self):返回矩阵的形状: (行数 列数)return len(self._values), len(self._values[0])def __repr__(self):return Matrix({}).format(self._values)__str__ __repr__ 2.2 Vector import math from ._globals import EPSILON class Vector:def __init__(self, lst):__init__ 代表类的构造函数双下划线开头的变量 例如_values,代表类的私有成员lst是个引用list(lst)将值复制一遍防止用户修改值self._values list(lst)def underlying_list(self):返回向量的底层列表return self._values[:]def dot(self, another):向量点乘返回结果标量assert len(self) len(another), \Error in dot product. Length of vectors must be same.return sum(a * b for a, b in zip(self, another))def norm(self):返回向量的模return math.sqrt(sum(e**2 for e in self))def normalize(self):归一化规范化返回向量的单位向量此处设计到了除法: def __truediv__(self, k):if self.norm() EPSILON:raise ZeroDivisionError(Normalize error! norm is zero.)return Vector(self._values) / self.norm()# return 1 / self.norm() * Vector(self._values)# return Vector([e / self.norm() for e in self])def __truediv__(self, k):返回数量除法的结果向量self / kreturn (1 / k) * selfclassmethoddef zero(cls, dim):返回一个dim维的零向量classmethod 修饰符对应的函数不需要实例化不需要 self 参数但第一个参数需要是表示自身类的cls参数可以来调用类的属性类的方法实例化对象等。return cls([0] * dim)def __add__(self, another):向量加法返回结果向量assert len(self) len(another), \Error in adding. Length of vectors must be same.# return Vector([a b for a, b in zip(self._values, another._values)])return Vector([a b for a, b in zip(self, another)])def __sub__(self, another):向量减法返回结果向量assert len(self) len(another), \Error in subtracting. Length of vectors must be same.return Vector([a - b for a, b in zip(self, another)])def __mul__(self, k):返回数量乘法的结果向量self * kreturn Vector([k * e for e in self])def __rmul__(self, k):返回数量乘法的结果向量k * selfself本身就是一个列表return self * kdef __pos__(self):返回向量取正的结果向量return 1 * selfdef __neg__(self):返回向量取负的结果向量return -1 * selfdef __iter__(self):返回向量的迭代器return self._values.__iter__()def __getitem__(self, index):取向量的第index个元素return self._values[index]def __len__(self):返回向量长度有多少个元素return len(self._values)def __repr__(self):打印显示Vector([5, 2])return Vector({}).format(self._values)def __str__(self):打印显示(5, 2)return ({}).format(, .join(str(e) for e in self._values))2.3 线性系统 from .Matrix import Matrix from .Vector import Vectorclass LinearSystem:def __init__(self, A, b):assert A.row_num() len(b), row number of A must be equal to the length of bself._m A.row_num()self._n A.col_num()assert self._m self._n # TODO: no this restrictionself.Ab [Vector(A.row_vector(i).underlying_list() [b[i]])for i in range(self._m)]def _max_row(self, index_i, index_j, n):best, ret abs(self.Ab[index_i][index_j]), index_ifor i in range(index_i 1, n):if abs(self.Ab[i][index_j]) best:best, ret abs(self.Ab[i][index_j]), ireturn retdef _forward(self):n self._mfor i in range(n):# Ab[i][i]为主元max_row self._max_row(i, i, n)self.Ab[i], self.Ab[max_row] self.Ab[max_row], self.Ab[i]# 将主元归为一self.Ab[i] self.Ab[i] / self.Ab[i][i] # TODO: self.Ab[i][i] 0?for j in range(i 1, n):self.Ab[j] self.Ab[j] - self.Ab[j][i] * self.Ab[i]def _backward(self):n self._mfor i in range(n - 1, -1, -1):# Ab[i][i]为主元for j in range(i - 1, -1, -1):self.Ab[j] self.Ab[j] - self.Ab[j][i] * self.Ab[i]def gauss_jordan_elimination(self):self._forward()self._backward()def fancy_print(self):for i in range(self._m):print( .join(str(self.Ab[i][j]) for j in range(self._n)), end )print(|, self.Ab[i][-1]) 3 行最简形式 4 线性方程组的结构 5 线性方程组-通用高斯消元的实现 5.1 global # 包中的变量但是对包外不可见因此使用“_”开头 EPSILON 1e-8def is_zero(x):return abs(x) EPSILONdef is_equal(a, b):return abs(a - b) EPSILON5.2 Vector-引入is_zero import math from ._globals import is_zero class Vector:def __init__(self, lst):__init__ 代表类的构造函数双下划线开头的变量 例如_values,代表类的私有成员lst是个引用list(lst)将值复制一遍防止用户修改值self._values list(lst)def underlying_list(self):返回向量的底层列表return self._values[:]def dot(self, another):向量点乘返回结果标量assert len(self) len(another), \Error in dot product. Length of vectors must be same.return sum(a * b for a, b in zip(self, another))def norm(self):返回向量的模return math.sqrt(sum(e**2 for e in self))def normalize(self):归一化规范化返回向量的单位向量此处设计到了除法: def __truediv__(self, k):if is_zero(self.norm()):raise ZeroDivisionError(Normalize error! norm is zero.)return Vector(self._values) / self.norm()# return 1 / self.norm() * Vector(self._values)# return Vector([e / self.norm() for e in self])def __truediv__(self, k):返回数量除法的结果向量self / kreturn (1 / k) * selfclassmethoddef zero(cls, dim):返回一个dim维的零向量classmethod 修饰符对应的函数不需要实例化不需要 self 参数但第一个参数需要是表示自身类的cls参数可以来调用类的属性类的方法实例化对象等。return cls([0] * dim)def __add__(self, another):向量加法返回结果向量assert len(self) len(another), \Error in adding. Length of vectors must be same.# return Vector([a b for a, b in zip(self._values, another._values)])return Vector([a b for a, b in zip(self, another)])def __sub__(self, another):向量减法返回结果向量assert len(self) len(another), \Error in subtracting. Length of vectors must be same.return Vector([a - b for a, b in zip(self, another)])def __mul__(self, k):返回数量乘法的结果向量self * kreturn Vector([k * e for e in self])def __rmul__(self, k):返回数量乘法的结果向量k * selfself本身就是一个列表return self * kdef __pos__(self):返回向量取正的结果向量return 1 * selfdef __neg__(self):返回向量取负的结果向量return -1 * selfdef __iter__(self):返回向量的迭代器return self._values.__iter__()def __getitem__(self, index):取向量的第index个元素return self._values[index]def __len__(self):返回向量长度有多少个元素return len(self._values)def __repr__(self):打印显示Vector([5, 2])return Vector({}).format(self._values)def __str__(self):打印显示(5, 2)return ({}).format(, .join(str(e) for e in self._values))5.3 LinearSystem from .Matrix import Matrix from .Vector import Vector from ._globals import is_zeroclass LinearSystem:def __init__(self, A, b):assert A.row_num() len(b), row number of A must be equal to the length of bself._m A.row_num()self._n A.col_num()# assert self._m self._n # TODO: no this restrictionself.Ab [Vector(A.row_vector(i).underlying_list() [b[i]])for i in range(self._m)]self.pivots []def _max_row(self, index_i, index_j, n):best, ret abs(self.Ab[index_i][index_j]), index_ifor i in range(index_i 1, n):if abs(self.Ab[i][index_j]) best:best, ret abs(self.Ab[i][index_j]), ireturn retdef _forward(self):i, k 0, 0while i self._m and k self._n:# 看Ab[i][k]位置是否可以是主元max_row self._max_row(i, k, self._m)self.Ab[i], self.Ab[max_row] self.Ab[max_row], self.Ab[i]if is_zero(self.Ab[i][k]):k 1else:# 将主元归为一self.Ab[i] self.Ab[i] / self.Ab[i][k]for j in range(i 1, self._m):self.Ab[j] self.Ab[j] - self.Ab[j][k] * self.Ab[i]self.pivots.append(k)i 1def _backward(self):n len(self.pivots)for i in range(n - 1, -1, -1):k self.pivots[i]# Ab[i][k]为主元for j in range(i - 1, -1, -1):self.Ab[j] self.Ab[j] - self.Ab[j][k] * self.Ab[i]def gauss_jordan_elimination(self):如果有解返回True如果没有解返回Falseself._forward()self._backward()for i in range(len(self.pivots), self._m):if not is_zero(self.Ab[i][-1]):return Falsereturn Truedef fancy_print(self):for i in range(self._m):print( .join(str(self.Ab[i][j]) for j in range(self._n)), end )print(|, self.Ab[i][-1]) 5.4 main from playLA.Matrix import Matrix from playLA.Vector import Vector from playLA.LinearSystem import LinearSystemif __name__ __main__:A Matrix([[1, 2, 4], [3, 7, 2], [2, 3, 3]])b Vector([7, -11, 1])ls LinearSystem(A, b)ls.gauss_jordan_elimination()ls.fancy_print()print()# [-1, -2, 3]A2 Matrix([[1, -3, 5], [2, -1, -3], [3, 1, 4]])b2 Vector([-9, 19, -13])ls2 LinearSystem(A2, b2)ls2.gauss_jordan_elimination()ls2.fancy_print()print()# [2, -3, -4]A3 Matrix([[1, 2, -2], [2, -3, 1], [3, -1, 3]])b3 Vector([6, -10, -16])ls3 LinearSystem(A3, b3)ls3.gauss_jordan_elimination()ls3.fancy_print()print()# [-2, 1, -3]A4 Matrix([[3, 1, -2], [5, -3, 10], [7, 4, 16]])b4 Vector([4, 32, 13])ls4 LinearSystem(A4, b4)ls4.gauss_jordan_elimination()ls4.fancy_print()print()# [3, -4, 0.5]A5 Matrix([[6, -3, 2], [5, 1, 12], [8, 5, 1]])b5 Vector([31, 36, 11])ls5 LinearSystem(A5, b5)ls5.gauss_jordan_elimination()ls5.fancy_print()print()# [3, -3, 2]A6 Matrix([[1, 1, 1], [1, -1, -1], [2, 1, 5]])b6 Vector([3, -1, 8])ls6 LinearSystem(A6, b6)ls6.gauss_jordan_elimination()ls6.fancy_print()print()# [1, 1, 1]A7 Matrix([[1, -1, 2, 0, 3],[-1, 1, 0, 2, -5],[1, -1, 4, 2, 4],[-2, 2, -5, -1, -3]])b7 Vector([1, 5, 13, -1])ls7 LinearSystem(A7, b7)ls7.gauss_jordan_elimination()ls7.fancy_print()print()A8 Matrix([[2, 2],[2, 1],[1, 2]])b8 Vector([3, 2.5, 7])ls8 LinearSystem(A8, b8)if not ls8.gauss_jordan_elimination():print(No Solution!)ls8.fancy_print()print()A9 Matrix([[2, 0, 1],[-1, -1, -2],[-3, 0, 1]])b9 Vector([1, 0, 0])ls9 LinearSystem(A9, b9)if not ls9.gauss_jordan_elimination():print(No Solution!)ls9.fancy_print()print()
http://www.pierceye.com/news/271770/

相关文章:

  • 有一个做搞笑英语视频网站外贸建站优化
  • 苏州公司建设网站深圳品牌蛋糕店有哪些品牌排行
  • 手机网站建设视频教程、网站建设项目功能需求分析报告
  • 纸 技术支持 东莞网站建设wordpress 手机 自建站
  • 网站后台 搜索广告发布合同模板
  • 手机网站设计教程网站建设 职位
  • 外贸网站图片素材谷歌seo和百度seo区别
  • 龙华网站 建设深圳信科潍坊网站建设培训
  • 域名网站平台qq在线登录
  • 成都做网站建设公司网站建设公司销售技巧
  • 打开网站是iis7三亚最新发布
  • php外贸网站中山网站建设方案报价
  • 好网站建设公司开发方案广告传媒公司加盟
  • 郑州膏药网站建设石家庄seo管理
  • 做国外产品描述的网站营销wordpress
  • 服务器2003怎么做网站枣庄网站建设电话
  • 南京网站建设一条龙汶上网站制作
  • 黑龙江微信网站开发郑州热门网络推广免费咨询
  • 深圳坪山站永久免费linux服务器
  • 东莞网站建议ipv6在家做网站
  • 政务网站源码1688电脑网页版
  • 大连企业网站网站rar文件
  • 揭阳东莞网站建设手机网站分享代码
  • 网站设计风格分析wordpress 用户介绍
  • 中国教育网站官网wordpress 自定义循环
  • 中国婚恋网站排名苏州网站建设设计公司哪家好
  • 微软雅黑做网站是否侵权杭州标志设计公司
  • 个人网站如何制作教程网站通栏广告设计
  • 网站建设与维护要求wordpress 常数函数
  • 网站开发u盘128够吗手机网站开发学习