首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python 学习手册
Python Cookbook
Python 基础教程
Python Sites
PyPI - Python Package Index
http://www.simple-is-better.com/
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
V2EX  ›  Python

请问可以用 Python 解方程式吗?

  •  
  •   lukeshawn · 154 天前 · 3025 次点击
    这是一个创建于 154 天前的主题,其中的信息可能已经有所发展或是发生改变。
    请定义一个函数 quadratic(a, b, c),接收 3 个参数,返回一元二次方程:

    ax2 + bx + c = 0

    的两个解。

    这是让我们求 X 的解的意思吗

    这个要怎么写,求解
    37 回复  |  直到 2018-04-18 11:59:28 +08:00
        2
    yongzhong   154 天前   ♥ 1
    tensorflow 了解一下?
        3
    EricXuu   154 天前 via Android   ♥ 1
    一元二次你就求根公式吧
    sympy 了解一下
        4
    projectzoo   154 天前
    @yongzhong #2 这也上 TF ?
        5
    ranleng   154 天前 via Android
    不是有求 x 的公式嘛, #1 的连接里也有
        6
    dacapoday   154 天前
    这种还是 wolfram 方便些
        7
    Zzde   154 天前 via iPhone
    @yongzhong #2 解放程都要上 tf 吗……门槛有点高
        8
    Shaikh   154 天前 via Android
    sagemath 可以,不知道算不算 Python
        9
    wlwood   154 天前 via Android
    scipy 了解下
        10
    ericls   154 天前 via iPhone
    当然可以 还可以符号运算
        11
    wlwood   154 天前 via Android
    numpy 了解下
        13
    xd314697475   154 天前   ♥ 1
    牛顿迭代法了解一下

    相关内容看大学数值计算方法
        14
    goreliu   154 天前
    看了下 @EricXuu 说的 sympy,感觉挺方便的,比如解 5x2 + 3x = 1:

    >>> from sympy import *
    >>> x = symbols('x')
    >>> solveset(Eq(5*x**2 + 3*x, 1), x)
    {-3/10 + sqrt(29)/10, -sqrt(29)/10 - 3/10}

    >>> float(a.args[0])
    0.2385164807134504
    >>> float(a.args[1])
    -0.8385164807134504
        15
    locktionc   154 天前   ♥ 1
    我很奇怪啊,楼上这些人把初中数学都忘记了吗?

    ```python
    import math
    x1 = (-b + math.sqrt(b ** 2 - 4 * a * c)) / 2 / a
    x2 = (-b - math.sqrt(b ** 2 - 4 * a * c)) / 2 / a
    ```
        16
    XIVN1987   154 天前
    符号计算,推荐 sympy
        17
    wnma3mz   154 天前 via Android
    首推 sympy,如果想不调包,就了解一下牛顿迭代法
        18
    Xiaobaixiao   154 天前   ♥ 1
    给楼主两个建议:
    ① 换个入门教程
    ② 善用搜索

    def quadratic(a,b,c):
    if a == 0:
    print("二次项系数不能为:0")
    else:
    i = b**2-4*a*c
    if i > 0:
    x1 = (-b+i**0.5)/(2*a)
    x2 = (-b-i**0.5)/(2*a)
    print("x1 的值为:{0},x2 的值为:{1}".format(x1,x2))
    elif i == 0:
    x1 = (-b+math.sqrt(i))/2
    print("x1,x2 的值均为:{0}".format(x1))
    elif i < 0:
    print("该方程无实数根")
        19
    XIVN1987   154 天前
    In [17]: import sympy as sy
    ...:
    ...: def quadratic(a, b, c):
    ...: Eq = sy.Eq(a*x**2+b*x+c, 0)
    ...: return sy.solve(Eq, x)
    ...:

    In [18]: quadratic(1, 2, 1)
    Out[18]: [-1]
        20
    Jackeriss   154 天前
    这不是大一 C 语言的课后作业吗?
        21
    anyclue   154 天前   ♥ 1
    这是楼主看到廖雪峰 Python 教程里定义函数那一节最后的练习题问的,那边评论里都是答案,不懂可以搜索……
    按那个教程看到那里,那个练习题对新手来说,确实问的有点懵……
    楼上的人也都挺有意思的……
        22
    est   154 天前
    @anyclue 这个 66666。
        23
    Joshua999   154 天前
    有没有解一元 n 次的包
        24
    goreliu   154 天前
    @Joshua999 用 sympy 可以,常见的方程式都能解。
        25
    DevRoss   154 天前 via Android
    线性代数了解一下
        26
    zst   154 天前 via Android
    sympy 吧....不过感觉开个 MATLAB 或者 Mathematica 更方便😂
        27
    virusdefender   154 天前
    z3 也不错
        28
    wcsjtu   154 天前
    这个不是有解析解么,直接代公式啊,o(1)的复杂度。。。。
    没有解析解的上牛顿迭代法啊,微分方程上龙格库塔啊,pde 的话,就当我没说。。。。。
        29
    bwangel   154 天前
        30
    jerry033   154 天前
    @locktionc 先做个判断,if b ** 2 - 4 * a * c > 0
        31
    locktionc   154 天前
    @jerry033 是的。
        32
    Len1133   154 天前
    数值计算了解一下,用任何语言解方程
        33
    goreliu   154 天前
    @bwangel 这个应该只能解一次方程。
        34
    guoli100   154 天前 via iPhone
    这个用 sympy 应该很方便吧。

    一元二次方程不是有标准的求根公式吗?
    x = (-b ∓ √(b^2 - 4ac)) / 2a

    且可以通过根的判别式∆ = b^2 -4ac 来判断方程有几个解,∆ > 0 有两个解,∆ = 0 有一个解,∆ < 0 无解。

    为什么楼上讲的都好复杂?
        35
    ZoomQuiet   153 天前 via iPhone
    @dacapoday 是也乎 ╮(╯▽╰)╭

    py 一样可调 wolframe 的~
        36
    lukeshawn   153 天前
    @anyclue 我看到上面的回复更是一脸懵逼
        37
    lukeshawn   153 天前
    我不明白廖雪锋的问题是什么,它是要我们求解 X 吗?我试了下评论里面的答案,没有一个是对的啊
    @anyclue
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   644 人在线   最高记录 3762   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.1 · 24ms · UTC 21:42 · PVG 05:42 · LAX 14:42 · JFK 17:42
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1