Python无法解决数学问题-找不到正确的答案

问题描述

我写这段代码的目的是解决这个方程式

K Attenuator T formula

我有R3(630)和Z(600)的值。但是我没有设法解决这个问题。在处理代码时,我收到很多错误错误答案。 k的答案应该是2.33333 ...

import math
from sympy import symbols,Eq,solve

# ATENUADOR PI
R3 = 630
Z = 600
k = symbols('k')
AdB = symbols('AdB')
k = solve((R3 * (k ** 2 - 1) / 2 * Z))
k = max(k)

我使用的每一个k收到的错误= solve(...) k = solve((R3 * (k ** 2 - 1) / 2 * Z))

k = 1

k = solve(R2 * (k ** 2 - 1) / (2 * Z))

TypeError:**或pow()不支持的操作数类型:“列表”和“整数”

k = solve(R2=2 * Z * (k / k ** 2 - 1))

TypeError:**或pow()不支持的操作数类型:“列表”和“整数”

k = solve((R2 * k ** 2) - R2 - (2 * k * 2))

TypeError:**或pow()不支持的操作数类型:“列表”和“整数”

仍然有一个公式为我提供了1 + sqrt(2)的值,接近答案,但仍然没有

考虑R2 == R3

解决方法

Solve正在求解0,所以您可以做到

$file = Get-ChildItem -Path <where I output my nupkg file to> -Recurse -Filter *.nupkg | Select -First 1
gpr push $file.FullName -k ${{secrets.GITHUB_TOKEN}}          

哪个给from sympy import symbols R3 = 630 Z = 600 k = symbols("k") k_ans = solve(2*Z*(k/(k*k-1))-R3) print(k_ans) 作为答案。

,

您错误定义了solve()函数的参数

正确的是:

res = solve((R3 * (k ** 2 - 1) - (2 * Z * k)))

您可以通过在纸上求解此方程轻松地对其进行检查

,
630.Z² - 2.600.Z - 630 = 0  <-> Z = -3/7 or Z = 7/3.