You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

新手求助:用Python求解指定代数方程以实现自动化计算

求解指定代数方程的Python实现

先把原方程简化:

1.881 + 0.5 = x + ((2.2×2×1)²)/(2×9.81×1²×x²)
简化后得到:
2.381 = x + 19.36/(19.62x²)

方法一:用scipy数值求解非线性方程

Python可以通过scipy.optimize模块的fsolve函数直接求解这类方程,步骤如下:

  1. 安装依赖(未安装scipy时执行):
pip install scipy
  1. 编写求解代码:
from scipy.optimize import fsolve

def equation(x):
    left = 1.881 + 0.5
    right = x + ((2.2 * 2 * 1)**2) / (2 * 9.81 * (1**2) * (x**2))
    return left - right

# 传入初始猜测值(可根据计算器结果选附近数值,比如2)
solution = fsolve(equation, 2)
print(f"方程的解为:{solution[0]:.4f}")
  1. 代码说明:
  • equation函数定义了「左边值减右边值」的表达式,求解该表达式等于0的x值就是原方程的解。
  • fsolve需要传入目标函数和初始猜测值,初始值选2是因为原方程的实数解在2附近。

方法二:转化为三次方程求解

将原方程两边乘以x²(x≠0),整理为标准三次方程:

x³ - 2.381x² + 19.36/19.62 = 0

可以用numpy的多项式根求解函数:

import numpy as np

# 三次方程系数:x³ -2.381x² +0x + (19.36/19.62)
coeffs = [1, -2.381, 0, 19.36/19.62]
roots = np.roots(coeffs)
# 筛选出实数解(排除复数解)
real_root = [root.real for root in roots if np.isclose(root.imag, 0)][0]
print(f"方程的实数解为:{real_root:.4f}")

内容的提问来源于stack exchange,提问作者JFran

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 22:25:32