常微分方程算法之龙格-库塔法(Runge-Kutta法)

AI摘要

本文详细介绍了常微分方程数值解法中的龙格-库塔法,特别是四阶龙格-库塔法,并通过实例展示了该方法在解决初值问题时的高效性和准确性。

目录

一、方法背景

二、算法原理及推导过程

1、二阶龙格-库塔公式

2、三阶龙格-库塔公式

3、四阶龙格-库塔公式

三、算例实现


一、方法背景

        在常微分方程算法之欧拉法中我们提到,通过数值计算求解连续问题的基本思想是采用离散化方法将连续问题转化为离散问题,进而采用迭代的方式求解差分格式的离散方程。在从离散方程到差分方程的过程中,我们采用了将高阶项O(h)忽略的近似方法,O(h)称为局部截断误差。而对于一阶常微分方程来说,如果其精确解在求解域I上存在k+1阶连续导数,则利用泰勒级数展开可得:

y(x_{i+1})=y(x_{i})+hy^{'}(x_{i})+\frac{h^{2}}{2!}y^{''}(x_{i})+\cdot \cdot \cdot +\frac{h^{k}}{k!}y^{(k)}(x_{i})+O(h^{k+1}) \space\space\space\space (1)

        如果忽略式(1)中的高阶项O(h^{k+1}),可得:

y_{i+1}=y_{i}+hy^{'}_{i}+\frac{h^{2}}{2!}y^{''}_{i}+\cdot\cdot\cdot+\frac{h^{k}}{k!}y^{(k)}_{i} \space\space\space\space (2)

        如果令式(2)中k=1,即可获得欧拉法,所以本质上欧拉法是一阶泰勒级数方法的数值计算,称之为一阶方法。如果令k=2,并忽略高阶项,可得二阶泰勒级数数值计算公式:

y_{i+1}=y_{i}+hf(x_{i},y_{i})+\frac{h^{2}}{2!}(f_{x}(x_{i},y_{i})+f(x_{i},y_{i})f_{y}(x_{i},y_{i})) \space\space\space\space (3)

由梯形法和改进欧拉法可知,两者均属于二阶方法。故阶数越高,计算精度越高,也即可以通过控制局部截断误差来提升算法精度。

二、算法原理及推导过程

1、二阶龙格-库塔公式

        对改进欧拉法差分格式进行推导变形:

y_{i+1}=y_{i}+\frac{1}{2}h[f(x_{i},y_{i})+f(x_{i+1},y_{i+1})] \\ \space\space\space\space =y_{i}+\frac{1}{2}h[f(x_{i},y_{i})+f(x_{i}+h,y_{i}+hf(x_{i},y_{i})]\\ \space\space\space\space =y_{i}+hy^{'}(x_{i})+\frac{h^{2}}{2}y^{'}(x_{i})+O(h^{3})

        由此可见,改进欧拉法本质上与泰勒级数二阶展开(公式3)只差一项O(h^{3})。所以,泰勒级数展开中各阶导数可以用函数在一些点上值的线性组合近似地表示。对于欧拉法,y_{(i+1)}=y_{i}+k_{1},其中k_{1}=hf(x_{i},y_{i}),局部截断误差为O(h^{2});对于改进欧拉法,y_{(i+1)}=y_{i}+\frac{1}{2}(k_{1}+k_{2}),其中k_{1}=hf(x_{i},y_{i}),k_{2}=hf(x_{i}+h,y_{i}+k_{1}),局部截断误差为O(h^{3})。将二阶泰勒级数数值格式写成一般格式:

 \left\{\begin{matrix} y_{i+1}=y_{i}+\alpha k_{1}+\beta k_{2}\\ k_{1}=hf(x_{i},y_{i}) \;\;\; (4)\\ k_{2}=hf(x_{i}+ah,y_{i}+bk_{1}) \end{matrix}\right.

        对k_{2}进行二元函数泰勒展开:

k_{2}=hf(x_{i}+ah,y_{i}+bk_{1})=hf(x_{i}+ah,y_{i}+bhf)

k_{2}=h[f+ahf_{x}+bhff_{y}+\frac{1}{2}(a^{2}h^{2}f_{xx}+2abh^{2}ff_{xy}+b^{2}h^{2}f^{2}f_{yy})]+O(h^{4})

        则公式(4)可以写作:

y_{i+1}=y_{i}+(\alpha +\beta)hf+h^{2}\beta (af_{x}+bff_{y})+O(h^{3}) \space\space\space\space (5)

        将公式(5)与公式(3)比较可知,只要满足,两式则对等:

\alpha+ \beta=1,\space\space a\beta=b\beta=\frac{1}{2}

        所以将满足上述参数条件的一族公式(4)称为二阶龙格-库塔公式。当参数满足\alpha=\beta=\frac{1}{2},a=b=1时,二阶龙格-库塔法就是改进欧拉法。

2、三阶龙格-库塔公式

        同二阶推导类似,三阶泰勒级数数值格式写成一般格式:

\left\{\begin{matrix} y_{i+1}=y_{i}+\alpha k_{1}+\beta k_{2} +\gamma k_{3}\\ k_{1}=hf(x_{i},y_{i}) \\ k_{2}=hf(x_{i}+ah,y_{i}+bk_{1}) \\ k_{3}=hf(x_{i}+ch,y_{i}+dk_{1}+ek_{2}) \end{matrix}\right.

        对于上式,只要满足:

\alpha+\beta+\gamma=1,a\beta+c\gamma=\frac{1}{2},c=d+e,a=b,a^{2}\beta+c^{2}\gamma=\frac{1}{3},ae\gamma=\frac{1}{6}

所以将满足上述参数条件的一族公式称为三阶龙格-库塔公式,可以取一组简单的解,得到一组简单的三阶龙格-库塔公式。

\alpha=\frac{1}{6},\beta=\frac{2}{3},\gamma=\frac{1}{6},a=b=\frac{1}{2},c=1,d=-1,e=2

\left\{\begin{matrix} y_{i+1}=y_{i}+ \frac{1}{6}(k_{1}+ 4k_{2} + k_{3})\\ k_{1}=hf(x_{i},y_{i}) \\ k_{2}=hf(x_{i}+\frac{1}{2}h,y_{i}+\frac{1}{2}k_{1}) \\ k_{3}=hf(x_{i}+h,y_{i}-k_{1}+2k_{2}) \end{matrix}\right.

3、四阶龙格-库塔公式

        数值计算中通常采用四阶龙格-库塔公式,推导过程与前述类似,四阶泰勒级数数值格式写成一般格式:

\left\{\begin{matrix} y_{i+1}=y_{i}+\lambda_{1}k_{1}+\lambda_{2}k_{2}+\lambda_{3}k_{3}+\lambda_{4}k_{4}\\ k_{1}=hf(x_{i},y_{i}) \\ k_{2}=hf(x_{i}+\alpha_{1}h,y_{i}+\beta_{1}k_{1}) \\ k_{3}=hf(x_{i}+\alpha_{2}h,y_{i}+\gamma_{1}k_{1}+\gamma_{2}k_{2}) \\ k_{4}= hf(x_{i}+\alpha_{3}h,y_{i}+\mu_{1}k_{1}+\mu_{2}k_{2}+\mu_{3}k_{3}) \end{matrix}\right.

        对于上式,只要满足:

\left\{\begin{matrix} \lambda_{1}+\lambda_{2}+\lambda_{3}+\lambda_{4}=1\\ \alpha_{1}=\beta_{1} \\ \alpha_{2}=\gamma_{1}+\gamma_{2} \\ \alpha_{3}=\mu_{1}+\mu_{2}+\mu_{3} \\ \alpha_{1}\lambda_{2}+\alpha_{2}\lambda_{3}+\alpha_{3}\lambda_{4}=\frac{1}{2} \\ \alpha^{2}_{1}\lambda_{2}+\alpha^{2}_{2}\lambda_{3}+\alpha^{2}_{3}\lambda_{4}=\frac{1}{3} \\ \alpha^{3}_{1}\lambda_{2}+ \alpha^{3}_{2}\lambda_{3}+\alpha^{3}_{3}\lambda_{4}=\frac{1}{4}\\ \alpha_{1}\gamma_{2}\lambda_{3}+(\alpha_{1}\mu_{2}+\alpha_{2}\mu_{3})\lambda_{4}=\frac{1}{6}\\ \alpha_{1}\alpha_{2}\gamma_{2}\lambda_{3}+\alpha_{3}(\alpha_{1}\mu_{2}+\alpha_{2}\mu_{3})\lambda_{4} =\frac{1}{8}\\ \alpha^{2}_{1}\gamma_{2}\lambda_{3}+(\alpha^{2}_{1}\mu_{2}+\alpha^{2}_{2}\mu_{3})\lambda_{4}=\frac{1}{12} \\ \alpha_{1}\gamma_{2}\mu_{3}\lambda_{4}=\frac{1}{24} \end{matrix}\right.

        可以取下列满足条件的一组解,得到最常用的四阶龙格-库塔公式:

\lambda_{1}=\lambda_{4}=\frac{1}{6},\lambda_{2}=\lambda_{3}=\frac{1}{3},\alpha_{1}=\alpha_{2}=\frac{1}{2},\alpha_{3}=1,\beta_{1}=\frac{1}{2},

\gamma_{1}=0,\gamma_{2}=\frac{1}{2},\mu_{1}=\mu_{2}=0,\mu_{3}=1

\left\{\begin{matrix} y_{i+1}=y_{i}+\frac{1}{6}(k_{1}+2k_{2}+2k_{3}+k_{4})\\ k_{1}=hf(x_{i},y_{i})\\ k_{2}=hf(x_{i}+\frac{1}{2}h,y_{i}+\frac{1}{2}k_{1}) \\ k_{3}=hf(x_{i}+\frac{1}{2}h,y_{i}+\frac{1}{2}k_{2}) \\ k_{4}=hf(x_{i}+h,y_{i}+k_{3}) \end{matrix}\right.

三、算例实现

        与欧拉法、梯形法、改进欧拉法一样,求相同的初值问题

\left\{\begin{matrix} y^{'}=-\frac{0.9}{1+2x}y &, \space\space\space\space 0<x\leqslant 0.1 \\ y(0) = 1, & \end{matrix}\right.

步长h=0.02。已知精确解为:y(x)=(1+2x)^{-0.45}

代码如下:


#include <stdlib.h>
#include <stdio.h>
#include <cmath>

int main(int argc, char* argv[])
{
        int i,N;
        double a,b,h,x0,x1,y0,y1,yexact,err;
        double k1,k2,k3,k4;
        double f(double x, double y);
        double exact(double x);

        a=0.0;
        b=0.1;
        N=5;
        h=(b-a)/N;

        i=1;
        x0=a;
        y0=1.0;

        do
        {
                x1=x0+h;
                k1=h*f(x0,y0);
                k2=h*f(x0+0.5*h,y0+0.5*k1);
                k3=h*f(x0+0.5*h,y0+0.5*k2);
                k4=h*f(x1,y0+k3);
                y1=y0+(k1+2*k2+2*k3+k4)/6.0;
                yexact=exact(x1);
                err=fabs(y1-yexact);
                printf("x=%.2f,   y=%f,   exact=%f,   err=%.10f.\n",x1,y1,yexact,err);
                i++;
                x0=x1;
                y0=y1;
        }while(i<=N);

        return 0;
}

double f(double x, double y)
{
        return -0.9*y/(1.0+2*x);
}

double exact(double x)
{
        return pow((1.0+2*x),-0.45);

N=5时,运行结果如下(并与欧拉法、梯形法、改进欧拉法对比):

++++++++++++++++++++++四阶龙格-库塔法+++++++++++++++++++++++
x=0.0200,   y=0.982506,   exact=0.982506,   err=0.0000000003.
x=0.0400,   y=0.965960,   exact=0.965960,   err=0.0000000006.
x=0.0600,   y=0.950281,   exact=0.950281,   err=0.0000000008.
x=0.0800,   y=0.935393,   exact=0.935393,   err=0.0000000010.
x=0.1000,   y=0.921231,   exact=0.921231,   err=0.0000000011.
+++++++++++++++++++++++++预估-校正法++++++++++++++++++++++++++++
x[1]=0.0200,   y[1]=0.982324,   exact=0.982506,   err=0.000182.
x[2]=0.0400,   y[2]=0.965616,   exact=0.965960,   err=0.000344.
x[3]=0.0600,   y[3]=0.949791,   exact=0.950281,   err=0.000490.
x[4]=0.0800,   y[4]=0.934772,   exact=0.935393,   err=0.000621.
x[5]=0.1000,   y[5]=0.920492,   exact=0.921231,   err=0.000739.
+++++++++++++++++++++++++++梯形法++++++++++++++++++++++++++++++
x[1]=0.0200,   y[1]=0.982498,   exact=0.982506,   err=0.000008.
x[2]=0.0400,   y[2]=0.965946,   exact=0.965960,   err=0.000015.
x[3]=0.0600,   y[3]=0.950260,   exact=0.950281,   err=0.000021.
x[4]=0.0800,   y[4]=0.935367,   exact=0.935393,   err=0.000026.
x[5]=0.1000,   y[5]=0.921201,   exact=0.921231,   err=0.000030.
++++++++++++++++++++++++++++欧拉法+++++++++++++++++++++++++++++
x[1]=0.0200,   y[1]=0.982000,   exact=0.982506,   err=0.000506.
x[2]=0.0400,   y[2]=0.965004,   exact=0.965960,   err=0.000957.
x[3]=0.0600,   y[3]=0.948920,   exact=0.950281,   err=0.001360.
x[4]=0.0800,   y[4]=0.933670,   exact=0.935393,   err=0.001723.
x[5]=0.1000,   y[5]=0.919182,   exact=0.921231,   err=0.002049.

N=10时,运行结果如下(并与欧拉法、梯形法、改进欧拉法对比):

++++++++++++++++++++++++四阶龙格-库塔法+++++++++++++++++++++++
x=0.0100,   y=0.991128,   exact=0.991128,   err=0.0000000000.
x=0.0200,   y=0.982506,   exact=0.982506,   err=0.0000000000.
x=0.0300,   y=0.974120,   exact=0.974120,   err=0.0000000000.
x=0.0400,   y=0.965960,   exact=0.965960,   err=0.0000000000.
x=0.0500,   y=0.958017,   exact=0.958017,   err=0.0000000000.
x=0.0600,   y=0.950281,   exact=0.950281,   err=0.0000000001.
x=0.0700,   y=0.942742,   exact=0.942742,   err=0.0000000001.
x=0.0800,   y=0.935393,   exact=0.935393,   err=0.0000000001.
x=0.0900,   y=0.928225,   exact=0.928225,   err=0.0000000001.
x=0.1000,   y=0.921231,   exact=0.921231,   err=0.0000000001.
+++++++++++++++++++++++++预估-校正法+++++++++++++++++++++++++++
x[1]=0.0100,   y[1]=0.991081,   exact=0.991128,   err=0.000047.
x[2]=0.0200,   y[2]=0.982413,   exact=0.982506,   err=0.000092.
x[3]=0.0300,   y[3]=0.973985,   exact=0.974120,   err=0.000135.
x[4]=0.0400,   y[4]=0.965786,   exact=0.965960,   err=0.000175.
x[5]=0.0500,   y[5]=0.957805,   exact=0.958017,   err=0.000213.
x[6]=0.0600,   y[6]=0.950032,   exact=0.950281,   err=0.000248.
x[7]=0.0700,   y[7]=0.942459,   exact=0.942742,   err=0.000283.
x[8]=0.0800,   y[8]=0.935078,   exact=0.935393,   err=0.000315.
x[9]=0.0900,   y[9]=0.927879,   exact=0.928225,   err=0.000346.
x[10]=0.1000,   y[10]=0.920856,   exact=0.921231,   err=0.000375.
++++++++++++++++++++++++++++梯形法+++++++++++++++++++++++++++++
x[1]=0.0100,   y[1]=0.991127,   exact=0.991128,   err=0.000001.
x[2]=0.0200,   y[2]=0.982504,   exact=0.982506,   err=0.000002.
x[3]=0.0300,   y[3]=0.974117,   exact=0.974120,   err=0.000003.
x[4]=0.0400,   y[4]=0.965957,   exact=0.965960,   err=0.000004.
x[5]=0.0500,   y[5]=0.958013,   exact=0.958017,   err=0.000004.
x[6]=0.0600,   y[6]=0.950276,   exact=0.950281,   err=0.000005.
x[7]=0.0700,   y[7]=0.942736,   exact=0.942742,   err=0.000006.
x[8]=0.0800,   y[8]=0.935386,   exact=0.935393,   err=0.000006.
x[9]=0.0900,   y[9]=0.928218,   exact=0.928225,   err=0.000007.
x[10]=0.1000,   y[10]=0.921223,   exact=0.921231,   err=0.000008.
++++++++++++++++++++++++++++欧拉法+++++++++++++++++++++++++++++
x[1]=0.0100,   y[1]=0.991000,   exact=0.991128,   err=0.000128.
x[2]=0.0200,   y[2]=0.982256,   exact=0.982506,   err=0.000250.
x[3]=0.0300,   y[3]=0.973756,   exact=0.974120,   err=0.000364.
x[4]=0.0400,   y[4]=0.965488,   exact=0.965960,   err=0.000473.
x[5]=0.0500,   y[5]=0.957442,   exact=0.958017,   err=0.000575.
x[6]=0.0600,   y[6]=0.949609,   exact=0.950281,   err=0.000672.
x[7]=0.0700,   y[7]=0.941978,   exact=0.942742,   err=0.000764.
x[8]=0.0800,   y[8]=0.934541,   exact=0.935393,   err=0.000851.
x[9]=0.0900,   y[9]=0.927290,   exact=0.928225,   err=0.000934.
x[10]=0.1000,   y[10]=0.920218,   exact=0.921231,   err=0.001013.

        可见,相同计算条件下,四阶龙格-库塔法具有更高的计算精度,近乎与解析解相等。但采用四阶龙格-库塔法在每一步计算中都需要计算4次f的值,相比其它三种方法,计算量最大。

四阶龙格-库塔(Runge-Kutta)算法详解 四阶龙格-库塔(RK4)方法是一种数值积分方法,用于求解常微分方程(ODE)。由龙格和库塔提出,RK4 通过计算四个中间斜率并加权平均,提高精度,误差为 \( O(h^4) \),比欧拉法和二阶 RK 方法更稳定。其计算量适中,在工程、物理、金融等领域广泛应用。尽管存在更高阶 RK 方法(如 RK5),但 RK4 因精度与计算效率的良好平衡,仍是最常用的 ODE 求解方法之一。 阅读详情

相关推荐

数值分析原理课程实验——四阶龙格-库塔(Runge-Kutta)方法

四阶龙格-库塔(Runge-Kutta)方法

KissMoon_的博客 7414

四阶龙格-库塔法求解常微分方程的初值问题-matlab通用程序

参考教材《数值分析》李乃成.梅立泉 clear clc format long m=input('请输入常微分方程的阶数m='); a=input('请输入x下限a='); b=input('请输入x上限b='); h=input('请输入步长h='); ym=input('令y(1,1)=y,y(2,1)=y’,y(3,1)=y’’...请输入ym=','s');     %输入

zhangxiaolu2015的专栏 1万+

龙格库塔法的基本原理

龙格库塔法的基本原理该算法是构建在数学支持的基础之上的。对于一阶精度的拉格朗日中值定理有:对于微分方程:y'=f(x,y)y(i+1)=y(i)+h*K1K1=f(xi,yi)当用点xi处的斜率近似值K1与右端点xi+1处的斜率K2的算术平均值作为平均斜率K*的近似值,那么就会得到二阶精度的改进拉格朗日中值定理:y(i+1)=y(i)+[h*( K1+ K2)/2]K1=f(xi,yi)K2=f(...

jacke121的专栏 6万+

Python runge kutta龙格-库塔法算法详解及源码

Runge-Kutta方法的基本思路是将微分方程的解值进行逼近,然后通过计算逼近值的斜率来更新解值。Runge-Kutta方法的基本思路是将微分方程的解值进行逼近,然后通过计算逼近值的斜率来更新解值。Runge-Kutta方法的基本思路是将微分方程的解值进行逼近,然后通过计算逼近值的斜率来更新解值。Runge-Kutta方法的基本思路是将微分方程的解值进行逼近,然后通过计算逼近值的斜率来更新解值。Runge-Kutta方法的基本思路是将微分方程的解值进行逼近,然后通过计算逼近值的斜率来更新解值。

希望我的博客,能帮上你解决学习中工作中所遇到的问题 620

微分方程数值解法(Runge-Kutta法PLC实现)

微分方程数值解法之欧拉法请参看下面的博客文章:微分方程数值解法(PID仿真用一阶被控对象库PLC算法实现)_数学微积分算法plc编程实例_RXXW_Dor的博客-优快云博客微分方程除极特殊情况外,大部分不可能求出它的精确解,只能用各种近似方法得到满足一定精度的近似解,微分方程由级数解法和Picard逐步逼近法,这些方法可以给出解的近似表达式,称为近似解析方法。另一类近似方法只给出解在一些离散点上的近似值,称为数值方法,这篇文章主要讨论第二种方法,即微分方程数值解法的PLC实现。

RXXW_Dor的博客 1005

全球半导体设备氧化钇熔射服务行业规模预测:预计未来六年CAGR为7.8%

本文将对“半导体设备氧化钇熔射服务”行业进行深度分析,探讨市场趋势的演变、核心竞争者的战略布局、供应链结构的内外特点、研发创新的最新进展、法规政策环境的适应性调整以及投资机会与风险评估。这一稳健的增长趋势表明半导体设备氧化钇熔射服务在电子行业中的重要性逐渐增强。由于全球对于高效、高精度和可靠的电子解决方案的需求增加,对能够提供这些功能的半导体设备氧化钇熔射服务的需求日益增长。由于半导体设备氧化钇熔射服务主要为就地服务型,其“配送”主要依赖于专业团队和技术设备的及时调配,强调服务的时效性和高质量。

CC1239777的博客 570

什么是深度展开网络?如何将迭代算法的每一次迭代展开成深度网络对应的一层?深度展开网络进行端对端训练,其中端对端是什么意思?

在深度学习和机器学习的背景下,“端到端”(End-to-end)训练指的是将输入数据直接映射到最终输出的过程,而不需要任何中间的手动数据预处理或特征工程。- **自然语言处理**:端到端自然语言处理系统可以将自然语言输入直接转化为计算机可理解的语言输出,而不需要对语言进行分解和转化。- **推荐系统**:通过使用深度神经网络,端到端推荐系统可以直接根据用户历史行为预测其未来的兴趣爱好,并推荐相应的产品或服务。4. **直接映射**:从输入到输出的直接映射,中间没有任何拆分或分解的过程。

m0_67897882的博客 5423

别再手动调参了!用BERTopic分析500篇论文摘要,我总结了这份超全参数调优指南

本文详细介绍了如何通过BERTopic参数调优从500篇论文摘要中挖掘高质量主题。从文档嵌入、降维到聚类,每个环节的关键参数设置都直接影响主题分析效果。文章提供了学术文本特有的调优技巧,包括预处理、主题多样性与专注度的平衡,以及评估指标与迭代优化方法,帮助研究者高效完成NLP主题分析任务。

weixin_31235909的博客 214

基于springboot生鲜食品订购系统的设计与实现

近年来互联网络的迅猛发展和电子终端设备的普及,赋予了各行业充足的发展空间。微信小程序的O2O生鲜食品订购相比于传统信息技术,时效性是它最大的特色,已经在电子娱乐、经济等中发挥着举足轻重的作用。短时间内迅速扩大了线上管理系统的规模。尽管O2O生鲜食品订购已经有了很大程度的发展,但在微信小程序的O2O生鲜食品订购领域上却少有建设。

1022

模拟电路综合笔试题解析

本专栏预计更新60期,当前为第10期,文章约6000字,旨在帮助读者掌握模拟电路笔试的核心知识点与实战技巧。文章分为五个章节,涵盖基础理论、高频考点、大厂题目解析等内容。首先,文章详细解析了DC-DC与LDO的区别及选型依据,并通过真题分析帮助读者理解其应用场景。接着,文章深入探讨了运放电路设计、同步降压电路设计等高频考点,并结合实际案例提供解决方案。此外,文章还分享了特斯拉、华为、大疆等大厂的面试题及解析,帮助读者应对复杂电路设计挑战。最后,文章总结了模拟电路设计中的关键技巧与优化方法,为读者提供全面的笔

启芯硬件的博客 468

微调实操一: 增量预训练(Pretraining)

《微调入门篇:大模型微调的理论学习》我们对大模型微调理论有了基本了解,这篇结合我们现实中常见的场景,进行大模型微调实操部分的了解和学习,之前我有写过类似的文章《实践篇:大模型微调增量预训练实践(二)》利用的MedicalGPT的源码在colab进行操作, 由于MedicalGPT代码比较难以理解,而且模型只能从hugging face上下载,对于一些国内服务器无法访问,我重构了代码,让训练代码更有可读性,并参考LLAMAFactory的项目,增加了modelscope上下载模型,轻松在国内服务器运行.

youbingchen的博客 6992

深度学习论文: Cultivated Land Extraction from High-Resolution Remote Sensing Image

深度学习论文: Cultivated Land Extraction from High-Resolution Remote Sensing Image The Winning Solution to the iFLYTEK Challenge 2021 Cultivated Land Extraction from High-Resolution Remote Sensing Image PDF: https://arxiv.org/pdf/2202.10974.pdf PyTorch代码: https:

mingo_敏 3479

突破Cloudflare 5秒盾:TLS指纹伪装+Playwright行为模拟,爬虫存活率从35%提至78%

TLS指纹精准识别:Cloudflare会解析客户端的TLS Client Hello包(如SSL版本、密码套件、扩展字段),Python的requests/urllib库的TLS指纹是“黑名单级”,请求一出即被拦截;行为特征检测:静态的浏览器伪装(如User-Agent)已失效,Cloudflare会监控页面加载后的行为(是否有鼠标移动、滚动、点击,行为是否机械);JS环境深度验证:通过WebGL、Canvas、字体渲染、Navigator属性生成浏览器指纹,无头浏览器的默认配置会被瞬间识别;

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 2359

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

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

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

上一篇: 常微分方程算法之预估-校正法(改进Euler法)
下一篇: 常微分方程算法之阿当姆斯法(Adams法)
猿核试Bug愁
博客等级 码龄7年 2593粉丝 190原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

猿核试Bug愁

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

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

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

打赏作者

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

抵扣说明:

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

余额充值