# -*- coding: UTF-8 -*-
class ClassGauss(object):
def __init__(self, a, b):
super(ClassGauss, self).__init__()
self.a = a
self.b = b
self.n = len(self.b)
def max(self, max_i, max_v, i, j):# get max
a = self.a
abs_of_a = abs(a[i][j])
if max_v < abs_of_a:
max_v = abs_of_a
max_i = i
return max_i, max_v
def swap(self, ai, j):# change line
a = self.a
b = self.b
n = self.n
for i in range(0, n):
temp = a[ai][i]
a[ai][i] = a[j][i]
a[j][i] = temp
tempb = b[ai]
b[ai] = b[j]
b[j] = tempb
def gauss(self):
n = self.n
max_i = 0 # line num of max value
max_v = m = self.a[0][0]
for j in range(0, n-1):
for i in range(j, n):
max_i, max_v = self.max(max_i, max_v, i, j)
if max_v == 0:
raise ValueError('no unique solution')
if debug:
print('max_v = %f' % max_v)
print('max_i = %f , j = %f' % (max_i, j))
if max_i != j:
# jiaohuan ai hang he ajhang
self.swap(max_i, j)
if debug:
print('SWAP*******')
print(self.a)
print(self.b)
for p in range(j+1, n):
l = a[p][j] / a[j][j]
# print('l = %f' % (l))
b[p] -= l * b[j]
for q in range(j, n):
a[p][q] -= l * a[j][q]
if debug:
print('CAL_a******')
print(self.a)
print(self.b)
max_v = m
if debug:
print("************************")
print(self.a)
print(self.b)
self.calculate()
def calculate(self):
n = self.n - 1
xn = b[n] / a[n][n]
print('xn = %f'% xn)
if __name__ == '__main__':
# example1
a = [[0.012, 0.0100, 0.1670],
[1.000, 0.8334, 5.910],
[3200, 1200, 4.200]]
b = [0.6781, 12.10, 983.3]
debug = False
# example2
# a = [[2.00, -4.00, 2.00],[1.00, 2.00, 3.00],[-3.00, -2.00, 5.00]]
# b = [2.00, 3.00, 1.00]
g = ClassGauss(a,b)
g.gauss()
两鬓已不能斑白
- 粉丝: 816
- 资源: 4
最新资源
- 集装箱吊车门机起重机电气电器图纸一套这是调试后的最终版图纸,含程序,元件清单,集装箱的,供学习参考用,这是电气图纸,没有机械的 plc是315-2dp,行车图纸有很多,串电阻的,各种变频,plc通讯
- 用html表单元素画的一棵旋转圣诞树
- 本地磁盘随意学习提供使用
- 职业与睡眠健康.zip
- 本地磁盘随意学习提供使用
- 墙外unity下载报错,版本2021.3.1f1
- 基于支持向量机(SVM)的手写字母识别 matlab代码
- Cursor安装包,想学习的Cursor可以免费使用
- Yealink VC Desktop1.28.0.72, 免费,局域网,IP电话, SIP, VOIP, 视频通话,可与手机互通,手机上也安装 yealink, apk包
- 日常业务完整版.pdf
- 基于S7-200 PLC和组态王组态切片机控制系统 带解释的梯形图程序,接线图原理图图纸,io分配,组态画面
- 全自动热封冷切制袋机x_t全套技术开发资料100%好用.zip
- CSDN项目管理系统 2024-11-01T15-51-11+011800.html
- 12.27ppt.zip
- FURIN Promoter 甲基化水平预测糖尿病.zip
- 热水壶自动ZN-Q5卷边机sw14可编辑全套技术开发资料100%好用.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈