【发布时间】:2023-03-10 21:31:01
【问题描述】:
出于纯粹的好奇,如果有一个函数/包可以解决 R 中的简单非线性方程,我很感兴趣?
假设我想(象征性地)解决0 = C + 1/x^2。上述示例的预期结果是x = sqrt(-1/-C)
我尝试了Ryacas 包:
library("Ryacas")
Solve(yacas("C+1/x^2"))
返回错误:
Sym("Solve(", x, ",", y, ")") 中的错误:缺少参数“y”, 没有默认值
所以我做到了:
Solve(yacas("C+1/x^2"), 0)
没有返回任何有用的东西:
Yacas vector:
character(0)
我按照?yacas 上的说明安装yacas。似乎yacas 有效,demo(Ryacas) 生成输出。这是第一部分:
demo(Ryacas)
---- ~~~~~~
Type <Return> to start :
> x <- -3 + (0:600)/300
> exp0 <- expression(x ^ 3)
> exp1 <- expression(x^2 + 2 * x^2)
> exp2 <- expression(2 * exp0)
> exp3 <- expression(6 * pi * x)
> exp4 <- expression((exp1 * (1 - sin(exp3))) / exp2)
> res1 <- yacas(exp4); print(res1)
expression(3 * (x^2 * (1 - sin(6 * (x * pi))))/(2 * x^3))
> exp5 <- expression(Simplify(exp4))
> res2 <- yacas(exp5); print(res2)
expression(3 * (1 - sin(6 * (x * pi)))/(2 * x))
> plot(x, eval(res2[[1]]), type="l", col="red")
有什么提示吗?
【问题讨论】:
-
包
rootSolve提供了解决NLE的功能 -
是的。我的错字。修好了
-
包裹
Ryacas可能会有帮助。 -
@symbolrush 对不起,我误读了您的问题(这里还早)。
RootSolve将无法帮助您解决您的具体问题。对于您的Ryacas-问题:您安装了 yacas 吗?没有那个 Ryacs 将无法工作。有关说明,请参阅?yacas -
Solve("C+1/x^2 == 0","x")为我工作
标签: r symbolic-math solver equation-solving