Python解微分方程

Python—微分方程 结合Python中Scipy,专注创建可以解决问题的方程目录一阶常微分方程二阶常微分方程三阶常系数微分方程组修正贝塞尔微分方程伯努利方程。 阅读详情
AI摘要

本文介绍了使用Python求解微分方程的方法,包括解析解和数值解。通过SymPy库解析求解常微分方程,利用SciPy库进行数值求解,展示了洛伦兹曲线等实例。

微分方程回顾

微分方程是用来描述某一类函数与其导数之间的关系的方程,其解是一个符合方程的函数。(解为常数值的是代数方程)

微分方程的求解是研究微分方程的重点之一,例如解是否存在,存在是否唯一等等。只有少数类型的微分方程存在解析解;无法求得解析解时,可以求数值解(用程序做数值分析),以此确认其解的部分性质。

微分方程按自变量的个数可分为常微分方程(Ordinary Differential Equations)和偏微分方程(Partial Differential Equations),前者只有一个自变量,表达通式形如
f ( d n y d x n , d ( n − 1 ) y d x ( n − 1 ) , . . . , d y d x , y ) = p ( x ) . f(\frac{d^ny}{dx^n}, \frac{d^{(n-1)}y}{dx^{(n-1)}} ,...,\frac{dy}{dx}, y) =p(x) . f(dxndny​,dx(n−1)d(n−1)y​,...,dxdy​,y)=p(x).
后者有两个及以上自变量,例如 ∂ ϕ ∂ x + x ∂ ϕ ∂ y = 0. \frac{\partial \phi}{\partial x} + x\frac{\partial \phi}{\partial y} = 0. ∂x∂ϕ​+x∂y∂ϕ​=0.

以常微分方程为例讲一下常见的一些概念,其中包括 (非)齐次,常(变)系数,(非)线性 。

如果第一个公式里左侧为线性微分方程(前提条件),且右侧的 p ( x ) = 0 p(x)=0 p(x)=0,则为齐次线性微分方程,否则非齐次。出现齐次概念的另一个场合是一阶微分方程 f ( x , y ) d y = g ( x , y ) d x f(x,y) dy = g(x,y)dx f(x,y)dy=g(x,y)dx,具体可以参见Wikipedia 齐次微分方程。简单来说,如果方程的解是齐次函数,那么这个方程就是齐次方程。

常系数和变系数就看函数及其各阶导数前系数是否为常数。

线性,则取决于函数本身是否线性以及函数是否与其导数有乘积,跟自变量无关。
例如:

  • 非齐次二级线性微分方程: d 2 y d x 2 + x d y d x + x y = x + 1 \frac{d^2y}{dx^2} +x\frac{dy}{dx}+xy = x+1 dx2d2y​+xdxdy​+xy=x+1
  • 谐振子齐次二阶常系数微分方程:
    d 2 u d x 2 + ω 2 u = 0 \frac{d^2u}{dx^2} +\omega ^2u = 0 dx2d2u​+ω2u=0
  • 单摆二阶非线性微分方程: L d 2 u d x 2 + g s i n ( u ) = 0 L\frac{d^2u}{dx^2} +g sin(u) = 0 Ldx2d2u​+gsin(u)=0
  • 一阶非线性微分方程: d y d x + y 2 = x + 1 \frac{dy}{dx}+y^2 = x+1 dxdy​+y2=x+1

微分方程:python 解析解(SymPy)

具备解析解的ODE,我们可以利用python的三方包SymPy进行求解。
以求解阻尼谐振子的二阶ODE为例,其表达式为
d 2 x ( t ) d t 2 + 2 γ ω 0 d x ( t ) d t + ω 0 2 x ( t ) = 0 , i n i t i a l   c o n d i t i o n s . { x ( 0 ) = 0 , d x ( t ) d t ∣ t = 0 = 0. \frac{d^2x(t)}{dt^2} + 2\gamma \omega _0\frac{dx(t)}{dt} + \omega _0^2 x(t) = 0, \\ initial\ conditions . \begin{cases} x(0) = 0, \\ \frac{dx(t)}{dt}|_{t=0} = 0. \end{cases} dt2d2x(t)​+2γω0​dtdx(t)​+ω02​x(t)=0,initial conditions.{x(0)=0,dtdx(t)​∣t=0​=0.​
完整的求解过程如下代码所示。

import numpy as np
from scipy import integrate
#import matplotlib.pyplot as plt
import sympy

def apply_ics(sol, ics, x, known_params):
	"""
	Apply the initial conditions (ics), given as a dictionary on
	the form ics = {y(0): y0, y(x).diff(x).subs(x, 0): yp0, ...},
	to the solution of the ODE with independent variable x.
	The undetermined integration constants C1, C2, ... are extracted
	from the free symbols of the ODE solution, excluding symbols in
	the known_params list.
	"""

	free_params = sol.free_symbols - set(known_params)
    ## free parameters like C1,C2, that needed to be figured out with ics and boundary conditions
	eqs = [(sol.lhs.diff(x, n) - sol.rhs.diff(x, n)).subs(x, 0).subs(ics) for n in range(len(ics))]
    ## form equations with general solution(sol), by substituting the x with 0 and [y(0),dy/dx(x=0)...] with ics.
	sol_params = sympy.solve(eqs, free_params)
    ## solve the algebraic equation set  to get the free parameters expression
    ## return the solution after substituting the free parameters

	return sol.subs(sol_params)

sympy.init_printing()
## initialize the print environment
t, omega0, gamma = sympy.symbols("t, omega_0, gamma", positive=True)
## symbolize the parameters and they can only be positive
x = sympy.Function('x')
## set x to be the differential function, not the variable
ode = x(t).diff(t, 2) + 2 * gamma * omega0 * x(t).diff(t) + omega0**2*x(t)
ode_sol = sympy.dsolve(ode)
## use diff() and dsolve to get the general solution
ics = {x(0): 1, x(t).diff(t).subs(t, 0): 0}
## apply dict to the initial conditions
x_t_sol = apply_ics(ode_sol, ics, t, [omega0, gamma])
## get the solution with ics by calling function apply_ics.
sympy.pprint(x_t_sol)
## pretty print
## solution is as follows
                                   ⎛       _______   _______⎞                 
       ⎛        γ         1⎞  ω₀⋅t⋅⎝-γ - ╲╱ γ - 1 ⋅╲╱ γ + 1 ⎠   ⎛      γ      
x(t) = ⎜- ───────────── + ─⎟⋅ℯ                                + ⎜─────────────
       ⎜       ________   2⎟                                    ⎜     ________
       ⎜      ╱  2         ⎟                                    ⎜    ╱  2     
       ⎝  2⋅╲╱  γ  - 1     ⎠                                    ⎝2⋅╲╱  γ  - 1 

            ⎛       _______   _______⎞
   1⎞  ω₀⋅t⋅⎝-γ + ╲╱ γ - 1 ⋅╲╱ γ + 1 ⎠
 + ─⎟⋅ℯ                               
   2⎟                                 
    ⎟                                 
    ⎠                                 

参考

  1. [https://vlight.me/2018/05/01/Numerical-Python-Ordinary-Differential-Equations/]
  2. [https://docs.sympy.org/latest/search.html?q=]

微分方程:python数值解(SciPY)

当ODE无法求得解析解时,可以用scipy中的integrate.odeint求数值解来探索其解的部分性质,并辅以可视化,能直观地展现ODE解的函数表达。
以如下一阶非线性(因为函数y幂次为2)ODE为例, d y d x = x − y ( x ) 2 . \frac{dy}{dx} = x - y(x)^2. dxdy​=x−y(x)2.
现用odeint 求其数值解,代码与可视化如下。

import numpy as np
from scipy import integrate
import matplotlib.pyplot as plt
import sympy

def plot_direction_field(x, y_x, f_xy, x_lim=(-5, 5), y_lim=(-5, 5), ax=None):
    f_np = sympy.lambdify((x, y_x), f_xy, 'numpy')
    x_vec = np.linspace(x_lim[0], x_lim[1], 20)
    y_vec = np.linspace(y_lim[0], y_lim[1], 20)

    if ax is None:
        _, ax = plt.subplots(figsize=(4, 4))

    dx = x_vec[1] - x_vec[0]
    dy = y_vec[1] - y_vec[0]

    for m, xx in enumerate(x_vec):
        for n, yy in enumerate(y_vec):
            Dy = f_np(xx, yy) * dx
            Dx = 0.8 * dx**2 / np.sqrt(dx**2 + Dy**2)
            Dy = 0.8 * Dy*dy / np.sqrt(dx**2 + Dy**2)
            ax.plot([xx - Dx/2, xx + Dx/2], [yy - Dy/2, yy + Dy/2], 'b', lw=0.5)

    ax.axis('tight')
    ax.set_title(r"$%s$" %(sympy.latex(sympy.Eq(y_x.diff(x), f_xy))), fontsize=18)

    return ax

x = sympy.symbols('x')
y = sympy.Function('y')
f = x-y(x)**2

f_np = sympy.lambdify((y(x), x), f)
## put variables (y(x), x) into lambda function f.
y0 = 1
xp = np.linspace(0, 5, 100)
yp = integrate.odeint(f_np, y0, xp)
## solve f_np with initial conditons y0, and x ranges as xp.
xn = np.linspace(0, -5, 100)
yn = integrate.odeint(f_np, y0, xm)

fig, ax = plt.subplots(1, 1, figsize=(4, 4))
plot_direction_field(x, y(x), f, ax=ax)
## plot direction field of function f
ax.plot(xn, yn, 'b', lw=2)
ax.plot(xp, yp, 'r', lw=2)
plt.show()

右侧曲线跟方向场贴合一致,但左侧蓝线的数值解诡异,明显不满足ODE的表达式,这也说明数值解的局限性。
右侧曲线跟方向场贴合一致,但左侧蓝线的数值解诡异

微分方程组:python数值解

以求解洛伦兹曲线为例,以下方程组代表曲线在xyz三个方向上的速度,给定一个初始点,可以画出相应的洛伦兹曲线。
{ d x d t = p ( y − x ) , d y d t = x ( r − z ) , d z d t = x y − b z , . \begin{cases} \frac{dx}{dt} = p(y-x), \\ \frac{dy}{dt} = x(r-z), \\ \frac{dz}{dt} = xy-bz,. \end{cases} ⎩⎪⎨⎪⎧​dtdx​=p(y−x),dtdy​=x(r−z),dtdz​=xy−bz,.​
代码与图如下。

import numpy as np
from scipy.integrate import odeint
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt

def dmove(Point, t, sets):
    """
    point:present location index
    sets:super parameters
    """
    p, r, b = sets
    x, y, z = Point
    return np.array([p * (y - x), x * (r - z), x * y - b * z])


t = np.arange(0, 30, 0.001)
P1 = odeint(dmove, (0., 1., 0.), t, args=([10., 28., 3.],))  #
## (0.,1.,0.) is the initial point; args is the set for super parameters
P2 = odeint(dmove, (0., 1.01, 0.), t, args=([10., 28., 3.],))
## slightly change the initial point from y = 1.0 to be y = 1.01

fig = plt.figure()
ax = Axes3D(fig)
ax.plot(P1[:, 0], P1[:, 1], P1[:, 2])
ax.plot(P2[:, 0], P2[:, 1], P2[:, 2])
plt.show()

洛伦兹曲线很好地展示了非线性的直观形态,同时也是展示混沌系统的经典例子。这个例子告诉我们,混沌系统可以是一个确定系统,不一定是随机过程,同时它有初值敏感的特征。

参考
scipy.integrate.odeint用法

如何用Python求解微分方程组 要用Python求解微分方程组,需要使用一些数值求解工具库,例如Scipy库。这就是使用Python求解微分方程组的简单示例。你可以根据自己的需要修改微分方程组的定义、初值和参数等。你可以将这个微分方程组转换为一个函数,让 solve_ivp() 函数对它进行求解。最后,你可以将求解结果可视化。接下来,定义微分方程组。其中 sigma,rho 和 beta 是常数。 阅读详情

相关推荐

拉普拉斯变换实战:用Python解微分方程(附完整代码)

本文详细介绍了如何使用Python的SymPy库通过拉普拉斯变换解决微分方程问题。从基础理论到实战案例,包括一阶电路响应分析和二阶机械振动系统,展示了拉普拉斯变换在复频域中的强大应用。附完整代码,帮助工程师和学生快速掌握这一高效数学工具。

weixin_29046611的博客 365

用python解决微分方程

用python求解一阶常微分方程 标准形式: 准备工作: 1.首先需要导入scipy库,只需在终端输入pip install scipy然后回车即可 同理导入numpy,matplotlib 包 2. scipy.integrate.odeint()是求解的具体方法,这个函数完整版是这样的 scipy.integrate.odeint(func, y0, t, args=(), Dfun=None, col_deriv=0, full_output=0, ml=None, mu=No.

m0_59309242的博客 1万+

【微分方程数值解】常微分方程(一)欧拉方法和改进欧拉方法(附python算例,封装类)

aa

qq_39482771的博客 5800

Python求解微分方程

Python求解微分方程

corn1949的博客 1470

Opencv计算相机响应函数(Camera Response Function)与Radiance

本文主要用于记录自己在学习CRF过程中遇到的一些问题。 CRF模型 I=f(V(t⋅L))I=f(V( t\cdot L))I=f(V(t⋅L)) 其中III为相机灰度值Intensity,LLL为环境中irradiance,ttt为曝光时间,VVV为相机镜头参数,fff为相机响应函数CRF。 有些论文中认为相机镜头参数是线性的不考虑,但有些考虑了衰减即靠近图像边缘亮度会暗一些,但没有看到二者同时计算的,如果同时计算两个非线性的函数,我觉得可能会有不确定性,在这里还请教一下了解的朋友。 控制

larrydong的博客 6002

分数计算器(C++课设)

需求概述 (1)设计一个分数计算器,进行分数的算术运算和逻辑运算。 (2)能够像使用基本数据的对象一样,对分数进行“+”、“-”、“*”和“/”等算术运算和比较两个分数的大小。 (3)以a/b的形式输入输出分数,允许输入输出整数这种特殊形式。 (4)对不是约化型的分数进行约化,避免分母为负数。 (5)如果分数的分母为0、除数为0或输入时格式有错,采用异常处理机制解决。 输入 以分数的形式输入。(如1/2) 若分母为0会抛出异常,重新输入。 菜单页面 RationalNumber.h(头文件) #ifnd

sadnessss的博客 8770

编程实战(2)——Python解微分方程方法总结

本篇博客主要讲解了二阶常系数微分方程的解析解和数值解的解法以及一阶常系数微分方程组的通解解法,并对每一个步骤做了详细的说明(网上很多帖子讲的并不是很详细),并做了一些探究性的尝试

qq_45882682的博客 1万+

【农业生产系统模型】基于R语言APSIM模型进阶应用与参数优化、批量模拟实践技术

APSIM模型有Classic和Next Generation两个系列模型,能模拟几十种农作物、牧草和树木的土壤-植物-大气过程,被广泛应用于精细农业、水肥管理、气候变化、粮食安全、土壤碳周转、环境影响、农业可持续性、农业生态等诸多与农业生产和科研有关的领域。R语言是一门应用场景广泛、简单易学的程序语言,APSIM模型开发了许多R语言辅助包,在APSIM模型的气候、土壤、管理措施等数据准备,自动化模拟,参数优化和结果分析上都发挥着重要的作用。案例一:APSIM模型输入参数和土壤文件的制备。

2303_79243743的博客 1047

python求解析解,Python解微分方程

Python解微分方程微分方程回顾微分方程:python 解析解(SymPy)微分方程:python数值解(SciPY)微分方程组:python数值解微分方程回顾微分方程是用来描述某一类函数与其导数之间的关系的方程,其解是一个符合方程的函数。(解为常数值的是代数方程)微分方程的求解是研究微分方程的重点之一,例如解是否存在,存在是否唯一等等。只有少数类型的微分方程存在解析解;无法求得解析解时,可以求...

weixin_39895096的博客 2499

YOLO26涨点改进 | 细节涨点篇 | 源自SCI一区 | YOLO26引入HWD小波下采样模块,而不会显著增加计算开销,(适合小目标分割任务、小目标检测任务)

本文提出了一种基于Haar小波变换的下采样模块HWD,用于改进YOLO26目标检测性能。HWD模块通过小波变换降低特征图分辨率,同时将空间信息编码到通道维度,有效保留了关键信息。相比传统下采样方法,HWD能显著减少信息不确定性,提升小目标检测精度。实验表明,该模块可无缝集成到CNN架构中,不增加计算开销。文章详细介绍了HWD的实现原理、代码结构以及在YOLO26中的集成方法,并提供了两种改进版yaml配置文件。该创新模块已在多种数据集上验证有效,特别适合语义分割和目标检测任务。

Ai缝合怪、助力小伙伴高效发论文 404

Android 12 大屏时底下显示任务栏以及虚拟按键靠右问题

Android 12 点大屏时,底下导航栏变成显示任务栏,虚拟按键靠右的分析以及修改

Android系统开发笔记 4686

【Python】求解常微分方程的符号解+数值解例题

Python提供了功能强大的求解常微分方程符号解的函数dsolve。下面我们来看几道例题。

2302_76305195的博客 4003

深度学习(五)迁移学习(实战:新数据预测+vgg16和聚类预测)

6、成功引入PCA数据降维技术,剔除了数据中的噪音信息、降低了模型复杂度、减少了模型训练时间,并最终提高了模型表现;gen=datagen.flow_from_directory(path,target_size=(224,224),batch_size=2,save_to_dir=dst_path,save_prefix='gen',save_format='jpg') # 生成图片大小224*224,bs产生多少组图像,存储路径和前缀。1、通过使用新数据,实现了模型的2次训练,达到了较好的预测效果;

weixin_37699342的博客 775

Python推导偏微分方程解析解

偏微分方程是包含多个自变量的微分方程,常通过分离变量法简化求解,例如将 ( u(x,t) ) 分解为 ( u(x,t) = X(x)T(t) )。sympy 提供了 pde_separate 函数实现变量分离,并通过 pdsolve 求解解析解。对于复杂方程,可使用 classify_pde 分类并调整求解策略,但并非所有方程都有解析解。

微小冷的学习笔记 1130

[Dify] 如何构建一个带评分功能的 Dify AI 教练系统

本文介绍如何利用Dify开源平台构建具备自动评分功能的AI教练系统。系统通过Prompt设计AI教练角色,使用OpenAPI定义评分工具接口,结合工作流编排实现提问、回答收集、评分和反馈的全流程。文章详细讲解了从AI教练身份设定、多维度评分标准设计到前端可视化展示的实现方法,并提供了可扩展建议,适用于语言训练、面试模拟等多种场景。该系统展示了Dify平台在构建智能化评估应用方面的优势,实现零代码开发专业AI教练解决方案。

技术小甜甜:传播可落地技术,帮助个人和企业降低解决真实场景问题的成本 334

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

python微分方程组数值解_如何求解微分方程组的数值解?

没有初始条件,没有参数范围,你就发个这玩意而没法解我就擅自加上一些条件吧指令:输出 :第二个方程的数值解为{{ InterpolatingFunction[{{0., 100.}}, {5, 7, 1, {16}, {4}, 0, 0, 0, 0, Automatic, {}, {}, False}, {{0.,0.00010264335615064078`, 0.0002052867123012...

weixin_35374026的博客 778

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

常微分方程的解析解(方法归纳)以及基于Python的二阶微分方程边值问题的数值算例实现

常微分方程的解析解(方法归纳)以及基于Python的微分方程数值解算例实现 本文归纳常见常微分方程的解析解解法以及基于Python的微分方程数值解算例实现。 如果没有出现意外,本文将不包含解法的推导过程。 常微分方程的解析解 考虑常微分方程的解析解法,我们一般可以将其归纳为如下几类: 可分离变量的微分方程(一阶) 一阶齐次(非齐次)线性微分方程(一阶) 二阶常系数微分方程(二阶) 高阶常系数微分方程(nnn阶) 可分离变量的微分方程(一阶) 这类微分方程可以变形成如下形式: f(x)dx=g(y)dy

图灵的猫的博客 5299

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

python解常微分方程(组)

本文主要讨论了我最近在sympy和odeint上计算常微分方程的一些经验和理解

weixin_61268973的博客 1万+

python解微分方程_您如何使用Python解微分方程?

python解微分方程I guess I should start with a very basic explanation of differential equations. Of course you probably know something about equations, right? This is the equation for the motion of an objec...

weixin_26737625的博客 1173

python解常微分方程

一、sympy.dsolve 首先,感觉最科学的是用sympy的dsolve解常微分方程,直接贴代码 import sympy as sy def differential_equation(x,f): return sy.diff(f(x),x,2)+f(x)#f(x)''+f(x)=0 二阶常系数齐次微分方程 x=sy.symbols('x')#约定变量 f=sy.Functio

your_answer的博客 5万+

python解zuobiaoxi方程_面对微分方程,odient函数是专业的

在日常学习当中,免不了解一些微分方程,但一些微分方程往往没有解析解,所以求得数值解就极为重要,下面我们就来看一下用python的scipy库中integrate中的odient来解一些微分方程数值解。odeint(func, y0, t, args=(), Dfun=None, col_deriv=0, full_output=0, ml=None, mu=None, rtol...

weixin_39950057的博客 273

python求解四阶微分方程_【Python学习之路】Scipy 解微分方程

解微分方程%pylab inlinePopulating the interactive namespace from numpy and matplotlib积分求解简单的例子d y d t = s i n ( t ) \frac{dy}{dt} = sin(t)dtdy​=sin(t)def dy_dt(y, t):return np.sin(t)积分求解:from scipy.integra...

weixin_39820588的博客 637

python解微分方程组 数值_python求微分方程组的数值解曲线01

本人最近在写一篇关于神经网络同步的文章,其一部分模型为:x_i^{\Delta}(t)= -a_i*x_i(t)+ b_i* f(x_i(t))+ \sum\limits_{j \in\{i-1, i+1\}}c_{ij}f(x_j(t-\tau_{ij})), t\in\mathbb{R}    (1.1)y_i^{\Delta}(t)= -a_i*y_i(t)+ b_i* f(y_i(t))+...

weixin_39859061的博客 550

python如何求解微分方程_常微分方程数值解:Python求解

这里对使用python求解常微分方程提供两种思路,一种是自己编程实现欧拉法,改进欧拉法或者四阶龙格库塔,这样有助于理解上述三种数值计算方法的原理;一种是调用python已有的库,不再重复造轮子。本文对上述两种思路都给出代码示例,并进行比较;同时针对单个微分方程和含有多个微分方程的微分方程组给出代码示例1. 常微分方程定义凡含有参数,未知函数和未知函数导数 (或微分) 的方程,称为微分方程。未知函数...

weixin_39863008的博客 4341

python怎么解微分方程组_python能解微分方程吗

SympySympy是一个数学符号库(sym代表了symbol,符号),包括了积分,微分方程等各种数学运算方法,为python提供了强大的数学运算支持。对于图像来说,虽然都是做离散的计算,操作最多的还是numpy里的数组,但实际上,这个库包含了积分微分,三角等最基本的数学运算,可以说是工科最基本的,用起来媲美matlab。sympy安装sudo pip install sympy 或者 sudo ...

weixin_34587189的博客 2544
下一篇: 范数与正则化以及过拟合问题
林重言
博客等级 码龄11年 42粉丝 4原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

林重言

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值