@liuhuiqiang
2017-04-06T10:01:40.000000Z
字数 1229
阅读 619
-------------- 小组信息 ---------------
组 长: 耿元享
项目五 矩阵和向量的计算
题目
实现线性代数中最基本的矩阵和向量计算,包括:
(1)向量加法,减法,点乘,叉乘
(2)矩阵加法,减法,乘法
(3)矩阵与向量的乘法
(4)N阶矩阵的行列式(要求N=2,3,4,可选)
(5)N阶矩阵的逆矩阵(要求N=2,3,4,可选)
(6)矩阵的秩(可选)
注:上述知识涉及到线性代数,有一定的难度!!!
目的
培养学生分析问题和编写简单程序的能力,主要考察Python基础语法以及高级数据类型的使用。
要求
(1)所设计的程序能够正确运行;
(2)代码应遵照Python语言的变量、函数命名规则,加入适当的注释;
(3)成果形式:项目报告(教师制定报告模板),严禁抄袭;
难易程度
普通/困难(只完成1、2、3属于普通级别,后面的4、5、6完成1~3道属于困难级别)
代码
from numpy import*;
b=[]
zs=int(raw_input('输入坐标个数:'))
for i in range(zs):
x=float(raw_input('输入x坐标:'))
y=float(raw_input('输入y坐标:'))
z=float(raw_input('输入z坐标:'))
a=[x,y,z]
b.append(a)
xsum=0
ysum=0
zsum=0
for j in range(zs):
xsum+=b[j][0]
ysum+=b[j][1]
zsum+=b[j][2]
print '坐标和为:','(',xsum,',',ysum,',',zsum,')'
ss=1
if zs/2.0==0:
for i in range(zs):
ss*=(b[i][0]2+b[i][1]**2+b[i][2]**2)(1.0/2)
print'积',ss
else:
for i in range(zs-1):
ss*=(b[i][0]2+b[i][1]**2+b[i][2]**2)(1.0/2)
print'积',ss,'(',b[zs][0],',',b[zs][1],',',b[zs][2],')'
A=[]
a=[]
B=[]
b=[]
n=int(raw_input('矩阵列数:'))
l=int(raw_input('矩阵行数:'))
for i in range(n):
a1=float(raw_input('输入数字:'))
b1=float(raw_input('输入数字:'))
a.append(a1)
b.append(b1)
for j in range(l):
A.append(a)
B.append(b)
for k in range(l):
A.insert(k,';')
B.insert(k,';')
A+B=plus(A,B)
A-B=minus(A,B)
A*B=mtimes(A,B)
pritn 'A+B',A+B,'A-B',A-B,'A*B',A*B