【发布时间】:2017-04-29 11:13:36
【问题描述】:
这是我尝试用 python(和任何编程语言)编写的第一件事,也是我在这里的第一个问题,所以我希望我能提供一切必要的帮助。
我有上三角矩阵,我需要求解方程组 Wx=y,其中给出了 W(3x3 矩阵)和 y(向量)。我不能使用 numpy.linalg 函数,所以我尝试实现this,但当然是倒退。 经过几次失败的尝试,我将任务限制在 3x3 矩阵上。没有循环,代码如下所示:
x[0,2]=y[2]/W[2,2]
x[0,1]=(y[1]-W[1,2]*x[0,2])/W[1,1]
x[0,0]=(y[0]-W[0,2]*x[0,2]-W[0,1]*x[0,1])/W[0,0]
现在,每个新总和都包含更多元素,这些元素是示意性的,但仍需要以某种方式定义。我想在 numpy 中必须有 sum 函数,但不是 linalg,它会做这样的事情,但我找不到它。 我最新的部分“尝试”是这样开始的:
n=3
for k in range(n):
for i in range(n-k-1):
x[0,n-k-1]=y[n-k-1]/W[n-k-1,n-k-1]
当然,它只包含每个总和的第一个元素。 如有任何帮助,我将不胜感激。
我正在处理的示例:
y=np.array([ 0.80064077, 2.64300842, -0.74912957])
W=np.array([[6.244998,2.88230677,-5.44435723],[0.,2.94827198,2.26990852],[0.,0.,0.45441135]]
n=W.shape[1]
x=np.zeros((1,n), dtype=np.float)
正确的解决方案应如下所示:
[-2.30857143 2.16571429 -1.64857143]
【问题讨论】:
-
你能给我们一个数学例子吗?
-
@ZohaibIjaz 你的意思是我关注的特定例子?我已经编辑了问题以添加它。
标签: python python-3.x numpy matrix