在R中求解具有两个未知数的方程

问题描述 投票:0回答:1

我正在为数据集拟合分布。我需要根据给定的函数/公式调整分布的参数。我不知道如何解决R中的问题

数据集是沉降数据集,形成14个不同的降雨持续时间(5分钟,10分钟,15分钟等)。对于每个数据集,我适合分布。之后,我需要将函数拟合到分布参数,以获得降雨持续时间和分布参数之间的关系。

给出了每个分布参数的函数。例如,location参数的函数是:u(d)= a / d ^ b

其中u(d)是所有14个拟合分布的位置参数(每个持续时间d),d是持续时间5,10,15,30,45,60,90,120,180,240,300,360,720和1440分钟。我现在需要找到参数a和b

我的问题在于由于缺乏数学知识和对英语术语知识不足而无法理解如何处理R中的问题。我已经开始阅读有关deSolve的一些内容,但我很快就感到困惑,甚至不确定我是否在正确的轨道上。

一个例子

u <- seq(0,60, length.out = 14) # these are the resulting location parameters

d <- c(5,10,15,30,45,60,90,120,180,240,300,360,720,1440)

因此,如果可能的话,我想获得如何解决问题以及如何设置方程求解代码的建议。

r solver differential-equations
1个回答
0
投票

我想我自己找到了使用nls的解决方案(来自包“stats”)

d <- c(5,10,15,30,45,60,90,120,180,240,300,360,720,1440)
mu <- seq(5, 30, length.out = 14)

给出了a和b的阈值:

a需要高于0,b需要高于-1

start_a <- 0.1 # start-value higher than 0
start_b <- -0.9 # start-value higher than -1

然后我可以设置功能

mu_fun <- function(a,d,b) {
a/(d^b) }

最后运行带有函数和给定起始估计的nls

mu_fit <- nls(mu ~ mu_fun(a,d,b), start = list(a = start_a, b = start_b))
© www.soinside.com 2019 - 2024. All rights reserved.