首页 > 解决方案 > 方程组 SciPy

问题描述

我想解决这样一个方程组:

21.7424698112 = A + B*2^{-x} 
22.4531418345 = A + B*3^{-x} 
23.8033967265 = A + B*4^{-x} 

我编写了一个脚本来查找 A、B 和 x 变量:

#!/usr/bin/env python
import numpy as np
from scipy.optimize import root

def your_funcs(X):

    A, B, x = X

    f = [21.7424698112-A-B*(1/2**x),
         22.4531418345-A-B*(1/3**x),
         23.8033967265-A-B*(1/4**x)]

    return f

sol = root(your_funcs, [1.0, 1.0, 1.0])
print(sol.x)

这种方法导致以下解决方案:

[ 22.66633613 -50.69139062 105.89893632]

我检查了解决方案,结果发现这些值不满足上述方程。我究竟做错了什么?我应该知道什么吗?

标签: pythonscipy

解决方案


推荐阅读