数学建模入门-python求解一般方程组与常微分方程组

文章目录

  • 前言
  • 一般方程组
    • 代码
    • 结果
  • 常微分方程组
    • 方程
    • 方程组

前言

使用sympy能方便的求解简单方程组
from sympy import *

一般方程组

代码

	## 一元
    x = symbols('x')  # 声明变量x,x可以是字符串表示单词
    y = sin(x) / x  # 表达式
    ## 求表达式的值
    result = solve(y, x)
    print(result)

    ## 多元
    a = symbols('a')
    b = symbols('b')
    ## 解析解
    print(solve([sin(a+b), cos(a-3*b)], [a, b]))
    ## 数值解在3后加一点即可
    numResult = solve([sin(a+b), cos(a-3.*b)], [a, b])
    print(numResult)

结果

在这里插入图片描述

常微分方程组

方程

	init_printing()
    # 定义符号常量x 与 f(x) g(x)。这里的f g还可以用其他字母替换,用于表示函数
    x, y = symbols('x y')
    f = symbols('f', cls=Function)
    # 用diffeq代表微分方程: f''(x) − 2f'(x) + f(x) = sin(x)
    diffeq = Eq(f(x).diff(x, x) - 2 * f(x).diff(x) + f(x), sin(x))
    # 调用dsolve函数,返回一个Eq对象,hint控制精度
    result = dsolve(diffeq, f(x))
    print(result)

数学建模入门-python求解一般方程组与常微分方程组_第1张图片

方程组

   init_printing()
    t = symbols('t')
    x, y = symbols('x, y', cls=Function)
    f1 = Eq(x(t).diff(t), 12*t*x(t) + 8*y(t))
    f2 = Eq(Derivative(y(t), t), 21*x(t) + 7*t*y(t))
    eq = (f1, f2)
    results = dsolve(eq)
    for result in results:
        print(result)

在这里插入图片描述

你可能感兴趣的:(数学建模)