作者dSnAil (低史耐尔)
看板Python
标题Re: [问题] 解二元二次方程式
时间Fri Nov 4 18:28:34 2011
※ 引述《tacosung (taco)》之铭言:
: 大家好~
: 我目前也是python的初学者~
: 想试试看用python来解二元二次方程式
: x^2 + axy + b*y^2 = c
: 所以 y**2 = (c-x**2)/((a*x)/y + b)
: 除了y值不知道,x值为0,5,10,15...230
: 其他值都已知
: 想要写一个程式可以一次跑出所有x值相对应的y
: 可是我卡住了...
: 我只会写到以下:
: from __future__ import division
: a = -1.335548173
: b = 1.107099143
: c = 32400
: for x in range(231):
: if x % 20 == 0:
: print y # 我不知道该怎麽让python自动算出相对应的y值
: 听说可以用牛顿法? 因为这个y值有正负值
: 可是我不太知道可以怎麽使用..
: 可以请各位提供意见吗?
: 先谢谢大家
和 python 没什麽关系 XD
如果只有 y 是要求的未知数的话,
把方程式整理一下就得到:
(b)y^2 + (ax)y + (x^2 - c) = 0 (括号内为已知数,视为常数)
有没有很熟?这是一元二次方程式,直接套公式解就可以了。
套下去的结果:
-ax +- √(a^2 * x^2 - 4b * (x^2 - c))
y = ──────────────────
2b
= (-ax + sqrt(a**2 * x**2 - 4 * b * (x**2 - c) ) ) / ( 2 * b )
还没验证过,不过大概的概念是这样,
可以试看看 0.0/
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.138.152.175
1F:推 tacosung:感谢你!! 我一时间没想到求单一解的公式!! 11/04 20:04
2F:→ tacosung:不过,除了这个以外,这样的公式python里面似乎只output 11/04 20:05
3F:→ tacosung:出正值,另一个根出不来耶~ 11/04 20:05
4F:→ dSnAil:把 -ax 後面的 + 改成 - 就是另外一个解了 11/04 20:08
5F:推 tacosung:阿!!! 对对!!! 没注意到!!! 11/04 20:14
6F:→ tacosung:感谢你!! 我的天呀~~ 完全就是我数学全忘光了.... 11/04 20:15
7F:→ tacosung:真是太丢脸了~ 在这里问这种鬼问题 囧 11/04 20:15