你好,下面是一個對應(yīng)的三階矩陣求逆的代碼
成都創(chuàng)新互聯(lián)公司主營隴川網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,app軟件開發(fā)公司,隴川h5小程序定制開發(fā)搭建,隴川網(wǎng)站營銷推廣歡迎隴川等地區(qū)企業(yè)咨詢
import?warnings
warnings.filterwarnings("ignore")
matrix1?=?[
[1,2,0,0],
[3,4,0,0],
[0,0,4,1],
[0,0,3,2],
]
matrix2?=?[
[1,0,-1,2,1],
[3,2,-3,5,-3],
[2,2,1,4,-2],
[0,4,3,3,1],
[1,0,8,-11,4],
]
matrix3?=?[
[1,0,-1,2,1,0,2],
[1,2,-1,3,1,-1,4],
[2,2,1,6,2,1,6],
[-1,4,1,4,0,0,0],
[4,0,-1,21,9,9,9],
[2,4,4,12,5,6,11],
[7,-1,-4,22,7,8,18],
]
def?step0(m):
n?=?len(m)
l?=?[]
for?i?in?range(0,n):
l.append([])
for?j?in?range(0,n):
if?i?==?j:
l[i].append(1)
else:
l[i].append(0)
return?l
def?step1(m):
n?=?len(m)
"""交換操作記錄數(shù)組?swap"""
swap?=?[]
l?=?[]
for?i?in?range(0,n):
swap.append(i)
l.append([])
for?j?in?range(0,n):
l[i].append(0)
"""對每一列進行操作"""
for?i?in?range(0,n):
max_row?=?m[i][i]
row?=?i
for?j?in?range(i,n):
if?m[j][i]?=?max_row:
max_row?=?m[j][i]
#global?row
row?=?j
swap[i]?=?row
"""交換"""
if?row?!=?i:
for?j?in?range(0,n):
m[i][j],m[row][j]?=?m[row][j],m[i][j]
"""消元"""
for?j?in?range(i+1,n):
if?m[j][i]?!=?0:
l[j][i]?=?m[j][i]?/?m[i][i]
for?k?in?range(0,n):
m[j][k]?=?m[j][k]?-?(l[j][i]?*?m[i][k])
return?(swap,m,l)
def?step2(m):
n?=?len(m)
long?=?len(m)-1
l?=?[]
for?i?in?range(0,n):
l.append([])
for?j?in?range(0,n):
l[i].append(0)
for?i?in?range(0,n-1):
for?j?in?range(0,long-i):
if?m[long-i-j-1][long-i]?!=?0?and?m[long-i][long-i]?!=?0:
l[long-i-j-1][long-i]?=?m[long-i-j-1][long-i]?/?m[long-i][long-i]
for?k?in?range(0,n):
m[long-i-j-1][k]?=?m[long-i-j-1][k]?-?l[long-i-j-1][long-i]?*?m[long-i][k]
return?(m,l)
def?step3(m):
n?=?len(m)
l?=?[]
for?i?in?range(0,n):
l.append(m[i][i])
return?l
def?gauss(matrix):
n?=?len(matrix)
new?=?step0(matrix)
(swap,matrix1,l1)?=?step1(matrix)
(matrix2,l2)?=?step2(matrix1)
l3?=?step3(matrix2)
for?i?in?range(0,n):
if?swap[i]?!=?i:
new[i],new[swap[i]]?=?new[swap[i]],new[i]
for?j?in?range(i+1,n):
for?k?in?range(0,n):
if?l1[j][i]?!=?0:
new[j][k]?=?new[j][k]?-?l1[j][i]?*?new[i][k]???
for?i?in?range(0,n-1):
for?j?in?range(0,n-i-1):
if?l2[n-1-i-j-1][n-1-i]?!=?0:
for?k?in?range(0,n):
new[n-1-i-j-1][k]?=?new[n-1-i-j-1][k]?-?l2[n-1-i-j-1][n-i-1]?*?new[n-1-i][k]
for?i?in?range(0,n):
for?j?in?range(0,n):
new[i][j]?=?new[i][j]?/?l3[i]
return?new
x1?=?gauss(matrix1)
x2?=?gauss(matrix2)
x3?=?gauss(matrix3)
print?(x1)
print?(x2)
print?(x3)
工具/材料:電腦、Python、Pycharm
1、首先,打開Python,定義一個數(shù)組,其值為空。
2、接著,輸入數(shù)組的長度,保存在變量中。
3、用for循環(huán),控制輸入數(shù)組的各元素。
4、從鍵盤逐一輸入數(shù)組各元素,并添加到數(shù)組中。
5、使用函數(shù),將數(shù)組倒序(逆序)排列。
6、最后,輸出倒序(逆序)排序后的數(shù)組值。
7、運行程序,輸入數(shù)組的各元素值后,電腦會將數(shù)組倒序(逆序)排列并輸出。
在寫python程序時,常能用到一些函數(shù)和方法,總結(jié)一下,保存起來,方便查詢。
一、內(nèi)置函數(shù)
# abs()獲取數(shù)字絕對值
# chr(i)數(shù)字轉(zhuǎn)換為字符類型
# divmod() 獲取兩個數(shù)值的商和余數(shù)
# enumerate() 將可遍歷序列組合為索引序列
# float()轉(zhuǎn)換為浮點數(shù)
# format() 格式化字符串
# int()轉(zhuǎn)換為整數(shù)?
# input() 接受用戶輸入內(nèi)容
# len() 計算元素個數(shù)
# max() 返回最大值
# min() 返回最小值
# math.ceil() 返回指定數(shù)值的上舍整數(shù)
# open()打開文件并返回文件對象
# pow() 冪運算
# print()打印輸出?
# range() 生成器
# reversed()反轉(zhuǎn)所有元素
# round()四舍五入求值
# sorted()對可迭代對象進行排序?
# str() 轉(zhuǎn)換為字符串
# sum() 求和
# set() 創(chuàng)建集合
# tuple() 將序列轉(zhuǎn)換為元組
# zip()將可迭代對象打包成元組
二、方法
# append() 添加列表元素
# capitalize()首字母轉(zhuǎn)換為大寫?
# count()字符出現(xiàn)次數(shù)
# close() 關(guān)閉文件
# decode() 解碼字符串
# dict.keys() 獲取字典所有的鍵
# find()字符串首次出現(xiàn)的索引
# f.read() 讀取文件內(nèi)容
# dict.update()更新字典
# dict.items() 獲取字典鍵/值對
# dict.get() 返回指定鍵的值
# encode() 編碼字符串
# list.sort() 排序列表元素
# index() 元素首次出現(xiàn)的索引
# isdigit() 判斷字符串是否只由數(shù)字組成
# isupper() 是否所有字母都為大寫
# isnum() 判斷字符串是否由字母和數(shù)字組成
# islower() 是否所有字母都為小寫
# isdecimal() 檢查字符串是否只包含十進制字符
# isalpha() 檢測字符串是否為純字母
# random.shuffle()隨機排序
# random.sample()返回?zé)o重復(fù)隨機數(shù)列表
# random.choice() 返回一個隨機元素
# random.randint() 生成指定范圍的隨機整數(shù)
# random.randrange() 生成指定范圍的指定遞增基數(shù)隨機整數(shù)
# pop() 刪除列表中的元素
# remove()刪除列表中的指定元素
# strip()去除空格
# lstrip()去除左側(cè)空格
# rstrip() 去除右側(cè)空格
# readline() 讀取單行內(nèi)容
# root.after() Tkinter中等待一段時間后再執(zhí)行命令
# str.isnumeric() 驗證字符串是否為數(shù)字(適用于Unicode)
# split()分割字符串
# ord() 將字符轉(zhuǎn)換為整數(shù)
# replace() 字符串替換
# ljust() 左對齊填充
# rjust() 左對齊填充
# readlines() 讀取所有行內(nèi)容
# datetime.datetime.now() 返回指定時區(qū)的本地日期時間
# datetime.datetime.today() 獲取當(dāng)前本地日期的date對象
# datetime.utcnow() 返回當(dāng)前UTC時間的datetime對象
# time.strptime()把時間字符串解析為元組
# time.time()返回當(dāng)前時間的時間戳
# time.sleep()暫停指定秒數(shù)
# time.strftime() 返回指定格式的日期字符串
# time.mktime() 接收時間元組并返回時間戳
# os.getcwd() 獲取當(dāng)前工作目錄
# os.listdir() 獲取指定路徑下的目錄和文件列表
# os.makedirs() 遞歸創(chuàng)建目錄
# os.rename() 重命名目錄或文件
# os.path.exists() 判斷路徑是否存在
# upper() 全部轉(zhuǎn)換為大寫字母
# lower()? 全部轉(zhuǎn)換為小寫字母
# sys.stdout.write() 標(biāo)準(zhǔn)輸出打印
# sys.stdout.flush()刷新輸出?
# shutil.copy() 復(fù)制單個文件到另一文件或目錄
# write() 寫入文件內(nèi)容
# winsound.Beep() 打開電腦揚聲器
# zfill() 在字符串前面填充0
三、循環(huán)語句
# break終止當(dāng)前循環(huán)
# continue 終止本循環(huán)進入下一次循環(huán)
# with open() as file 以with語句打開文件(數(shù)據(jù)保存)
四、轉(zhuǎn)義字符
\ 行尾續(xù)行符
\' 單引號?
\'' 雙引號
\a 響鈴
\e 轉(zhuǎn)義
\n 換行
\t 橫向制表符
\f 換頁
\xyy 十六進制yy代表的字符
\\反斜杠符號
\b 退格
\000 空
\v 縱向制表符
\r 回車
\0yy 八進制yy代表的字符
\other 其他的字符以普通格式輸出
atan()方法返回x的反正切值,以弧度表示。
Syntax
以下是atan()方法的語法:
atan(x)
注意:此函數(shù)是無法直接訪問的,所以我們需要導(dǎo)入math模塊,然后需要用math的靜態(tài)對象來調(diào)用這個函數(shù)。
參數(shù)
x -- 這必須是一個數(shù)值。
返回值
此方法返回 x 的反正切值,以弧度表示。
例子
下面的例子顯示atan()方法的使用。
#!/usr/bin/python
import math
print "atan(0.64) : ", math.atan(0.64)
print "atan(0) : ", math.atan(0)
print "atan(10) : ", math.atan(10)
print "atan(-1) : ", math.atan(-1)
print "atan(1) : ", math.atan(1)
當(dāng)我們運行上面的程序,它會產(chǎn)生以下結(jié)果:
atan(0.64) : 0.569313191101
atan(0) : 0.0
atan(10) : 1.4711276743
atan(-1) : -0.785398163397
atan(1) : 0.785398163397
acos()方法返回x的反余弦值,以弧度表示。
以下是acos()方法的語法:acos(x)
注意:此函數(shù)是無法直接訪問的,所以我們需要導(dǎo)入math模塊,然后需要用math的靜態(tài)對象來調(diào)用這個函數(shù)。x -- 這必須是在范圍內(nèi)的數(shù)字值-1到1,如果x大于1,則它會產(chǎn)生一個錯誤。
擴展資料
python運行的兩種方式
1、命令行:python +需要執(zhí)行的代碼
特點:會立即看到效果,用于代碼調(diào)試,寫到內(nèi)存中,不會永久保存
2、寫到文件里面:python +執(zhí)行文件的位置
特點:可以永久保存。
過程:
1、啟動python解釋器
2、將內(nèi)容從硬盤讀取到內(nèi)存中
3、執(zhí)行python代碼
(再次強調(diào):程序在未運行前跟普通文件無異,只有程序在運行時,文件內(nèi)所寫的字符才有特定的語法意義)
標(biāo)題名稱:python逆函數(shù)法,反函數(shù) 逆函數(shù)
標(biāo)題來源:http://www.chinadenli.net/article22/dseoijc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁設(shè)計公司、微信小程序、關(guān)鍵詞優(yōu)化、軟件開發(fā)、搜索引擎優(yōu)化、網(wǎng)站設(shè)計公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)