在python中确定线性方程组的求解
发布时间:2020-12-16 21:31:31 所属栏目:Python 来源:网络整理
导读:考虑以下问题: Find: x_1,x_2,x_3 0 such that 67.5=60*x_1+90*x_2+120*x_3 and 60=30*x_1+120*x_2+90*x_3 有没有办法在Python中解决这个等式? (类似的问题已经被要求用于MATLAB) 任何人都可以举例说明如何在python中使用scipy.nnls()来获得任何未确定的方
考虑以下问题:
有没有办法在Python中解决这个等式? 任何人都可以举例说明如何在python中使用scipy.nnls()来获得任何未确定的方程组 解决方法
用sympy象征性地解决方程组
from sympy import * x_1,x_3 = symbols('x_1 x_2 x_3') res = solve([Eq(60*x_1+90*x_2+120*x_3,67.5),Eq(30*x_1+120*x_2+90*x_3,60)],[x_1,x_3]) print res #{x_1: -1.4*x_3 + 0.6,x_2: -0.4*x_3 + 0.35} 使用scipy.optimize.nnls import numpy as np import matplotlib.pyplot as plt from scipy.optimize import nnls A = np.array([[60,90,120],[30,120,90]]) b = np.array([67.5,60]) x,rnorm = nnls(A,b) print x #[ 0. 0.17857143 0.42857143] print rnorm #0.0 尽管如此,这只承诺一个解决方案,其中参数是x> = 0,因此您可以获得零,就像您在此示例中所做的那样. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |