R语言能求出一阶微分方程的泛解吗?

例如:

(5x-6)^2 y' = 5(5x-6) y - 2

PS:
这可以很容易地手动解决,即特定的解决方案是:
y = 1/(5(5x-6))

和通用
C*(5x-6)

我需要了解R是否可以做到?

最佳答案

我们可以使用 R 库 deSolve 来获得 ODE 的数值解。有关详细信息,请参阅 ?deSolve

这是一个基于您的 ODE 的经过处理的示例。

  • 加载 R 库
    library(deSolve);
    
  • 定义微分方程
    # Define the function
    f <- function(x, y, params) list((5 * (5 * x - 6) * y - 2) / (5 * x - 6)^2)
    
  • 设置要求解的 x 值和初始条件
    # x values for which to solve
    x <- seq(2, 10, length.out = 100);
    
    # Initial value y(x=2) = 1/20
    y0 <- 1/20
    
  • 求解 ODE
    # Solve ODE
    df <- as.data.frame(ode(y0, x, f, parms = NULL));
    
  • deSolve 绘制理论(代数)解和数值解
    # Plot
    library(ggplot2);
    ggplot(df, aes(time, `1`)) +
        stat_function(
            fun = function(x) 1/(5 * (5 * x - 6)),
            aes(colour = "Theoretical"),
            size = 4) +
        geom_line(aes(colour = "deSolve"), size = 2) +
        labs(x = "x", y = "y")
    

  • r - R语言能求出一阶微分方程的泛解吗?-LMLPHP

    关于r - R语言能求出一阶微分方程的泛解吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50229410/

    10-11 16:33