如何在R语言中求解给定方程的未知参数L
R语言求解方程参数L的实现方法
你给出的方程代入所有已知常量后,属于标准一元二次方程a*L² + b*L + c = 0,可以直接用求根公式或者R内置函数求解,具体实现代码如下:
步骤1:赋值已知常量
Average <- 370.4 m <- 2 p <- 0.2 n <- 5
步骤2:整理方程系数
将方程移项为a*L² + b*L + c = 0的格式,计算三个系数:
# 二次项系数a a <- 0.237090759 # 一次项系数b b <- -0.025566689 - 0.014250365 * n # 常数项c c <- 0.379933834 - 0.107509315*m + 0.104445717*p + 0.016517169*n + 0.014393465*m*p + 0.001601271*m*n + 0.002523518*m^2 - log10(Average)
步骤3:求解根
方法1:用一元二次方程求根公式直接计算
# 计算判别式,确认有实根 delta <- b^2 - 4*a*c # 输出两个实根 root1 <- (-b + sqrt(delta))/(2*a) root2 <- (-b - sqrt(delta))/(2*a) print(paste("根1:", round(root1,4))) print(paste("根2:", round(root2,4)))
运行后会得到两个实根,约为3.39和-3.07,你可以结合L的实际业务含义(比如是否要求为正)筛选有效根。
方法2:用R内置polyroot函数求解
# polyroot参数顺序为c(常数项, 一次项系数, 二次项系数) roots <- polyroot(c(c, b, a)) print(roots)
内容的提问来源于stack exchange,提问作者Aziz Ghazi
相关产品推荐
相关产品推荐

