python如何解方程的三种方法


当前第2页 返回上一页

一般来说,我们只需要用到 func 和 x0 就够了. func 是自己构造的函数,也就是需要求解的方程组的左端(右端为 0),而 x0 则是给定的初值.

我们来看一个具体的例子,求解:

1

2

3

x + 2y + 3z - 6 = 0

5 * (x ** 2) + 6 * (y ** 2) + 7 * (z ** 2) - 18 = 0

9 * (x ** 3) + 10 * (y ** 3) + 11 * (z ** 3) - 30 = 0

就可以这么写:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

In [3]: from scipy.optimize import fsolve

  ...:

  ...: def func(i):

  ...:     x, y, z = i[0], i[1], i[2]

  ...:     return [

  ...:             x + 2 * y + 3 * z - 6,

  ...:             5 * (x ** 2) + 6 * (y ** 2) + 7 * (z ** 2) - 18,

  ...:             9 * (x ** 3) + 10 * (y ** 3) + 11 * (z ** 3) - 30

  ...:            ]

  ...:

  ...: r = fsolve(func,[0, 0, 0])

  ...: print r

  ...:

Out[3]: [ 1.00000001  0.99999998  1.00000001]

当然,SciPy 也可以用来求解线性方程组,这是因为 scipy.optimize.fsolve 本质上是最小二乘法来逼近真实结果.

SymPy 求解方程组

例如求解一个:

1

x + 2 * (x ** 2) + 3 * (x ** 3) - 6 = 0

直接就是:

1

2

3

4

In [4]: from sympy import *

  ...: x = symbols('x')

  ...: solve(x + 2 * (x ** 2) + 3 * (x ** 3) - 6, x)

Out[4]: [1, -5/6 - sqrt(47)*I/6, -5/6 + sqrt(47)*I/6]

以上就是python如何解方程的三种方法的详细内容,更多文章请关注木庄网络博客!!

返回前面的内容

相关阅读 >>

Python爬虫入门心得分享

Python怎么定义线程局部变量

Python怎么安装gdal

Python的web服务器相关知识点

Python怎么打开

总结3种Python合并字符串方法

Python文件如何指定virtualenv

Python实现高性能测试工具(一)

Python实现对自定义类对象排序(利用attrgetter)

Python为什么有tcl

更多相关阅读请进入《Python》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...