Python 学科应用实例
一、NumPy 模块库的应用
某天文学家要确定一颗小行星绕太阳运行的轨道,他在轨道平面内建立以太阳为原点
的直角坐标系,其单位为天文测量单位,在
5
个不同的时间对小行星作了
5
次观察,测得
轨道上的
5
个点的坐标数据如表所示。
小行星运行轨道上的 5 个点的坐标数据
i
1
2
3
4
5
x
i
5.764
6.286
6.759
7.168
7.408
y
i
0.648
1.202
1.823
2.526
3.360
试确定小行星的轨道方程。
1.模型的分析
由开普勒第一定律知,小行星运行轨道为椭圆。椭圆的一般方程为:
a
1
x
2
+2a
2
xy+a
3
y
2
+2a
4
x+2a
5
y+1=0
需要确定系数 a
i
(i=1,2,3,4,5)。
利用已知的数据,不妨设测得的 5 个点坐标为(x
i
,y
i
)( i=1,2,3,4,5),确定系数 a
i
等价于
求解下列线性方程组。
01y2ax2ayayx2axa
01y2ax2ayayx2axa
01y2ax2ayayx2axa
01y2ax2ayayx2axa
01y2ax2ayayx2axa
5554
2
53552
2
51
4544
2
43442
2
41
3534
2
33332
2
31
2524
2
23222
2
21
1514
2
13112
2
11
上述方程可写成矩阵的形式:
Ax=b
其中
55
2
555
2
5
44
2
444
2
4
33
2
333
2
3
22
2
222
2
2
11
2
111
2
1
2y2xyy2xx
2y2xyy2xx
2y2xyy2xx
2y2xyy2xx
2y2xyy2xx
A
,
5
4
3
2
1
a
a
a
a
a
x
,
1
1
1
1
1
b
。
将表 5-1 的数据代入系数矩阵 A,可得该问题的求解模型。
2.模型求解
定义一个求解线性方程组 Ax=b 的函数,然后调用该函数求系统的解。程序如下:
from math import *
from numpy import *
def xsol(A,b):
x=dot(linalg.inv(A),b)
return x
def main():