如何求解几何级联的非线性联立方程?

时间:2019-04-15 11:15:18

标签: python python-3.x

我想制作一个有助于几何级数的程序。只要用户提供第一项和第二项,我就可以找到总和,项,项值。我想编写一些代码来解决非线性联立方程,并自行找到第一项的值a和公共比率r。

我在编码中使用了公式ar ^ n-1 = [term value]

例如,如果我输入的第三项是45,第五项是405,我希望程序输出a为5,r为3。

from scipy.optimize import fsolve

any_num1 = int(input("Enter the term "))
any_num1_value = int(input("Enter its value: "))

any_num2 = int(input("Enter the term "))
any_num2_value = int(input("Enter its value: "))

def equations(p):
    a, r = p
    return (a*r**any_num1-1-any_num1_value, a*r**any_num2-1-any_num2_value)

a, r =  fsolve(equations, (1, 1))

print(equations((a, r)))

1 个答案:

答案 0 :(得分:0)

好吧,解决方案全是关于数学的。

any_num1 = int(input("Enter the term "))
any_num1_value = int(input("Enter its value: "))

any_num2 = int(input("Enter the term "))
any_num2_value = int(input("Enter its value: "))

term_difference = any_num1 - any_num2 if any_num1 > any_num2 else any_num2 - any_num1
b,c = (any_num1_value, any_num2_value) if any_num1_value > any_num2_value else 
(any_num2_value, any_num1_value) 


r = int((b / c) ** (1/term_difference))
a = int(any_num1_value / (r ** (any_num1 - 1)))

print("First term:" + str(a))
print("Ratio:" + str(r))