考虑以下问题:
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()来获得任何未确定的方程组
解决方法
用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}
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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。