r - R语言能找到一阶微分方程的通解吗?
问题描述
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")
推荐阅读
- plugins - 是否有功能或插件显示包含文件与 Visual Studio Code 的顶级 .asp 文件内联?
- .net - 我可以使用 extern 来半引用其他 .net 程序集吗?
- c - 解析命令并将文件路径传递给 fopen
- javascript - 如何防止侧边栏中的图标移动?
- c# - ASP.NET SqlParameter
- javascript - Javascript中字符串匹配+替换的特例
- html - z-index 和转换问题
- c++ - 如果可推导类型有替换,可变参数模板类型推导会使编译器崩溃
- tomcat - 通过代码列出在 context.xml Tomcat 中配置的 jndi 数据源
- nativescript - 提交时表单视图触发错误