gpt4 book ai didi

r - 求解 R 中的不定方程组

转载 作者:行者123 更新时间:2023-12-04 11:38:42 26 4
gpt4 key购买 nike

我有一个方程组,我想用数值方法求解它。给定起始种子,我想得到一个接近的解决方案。让我解释。

我有一个常量向量,X,值:

X <- (c(1,-2,3,4))

和一个向量 W 的权重:

W <- (c(0.25,0.25,0.25,0.25))

我希望 W 的分量之和为 (sum(W)=1),以及 X 的乘积之和W 逐个元素将是给定的数字 N (sum(W*X)=N)。

在 R 中有没有一种简单的方法可以做到这一点?我在 Excel 中使用规划求解,但我需要将其自动化。

最佳答案

这是您的常量和目标值:

x <- c(1, -2, 3, 4)
n <- 10

你需要一个函数来最小化。第一行包含您的每个条件,第二行提供如何将错误组合成一个分数的度量。您可能想要更改第二行。例如,您可以使用 sum(c(1, 5) * errs ^ 2) 使一个错误项的权重高于另一个。

fn <- function(w)
{
errs <- c(sum(w) - 1, sum(x * w) - n)
sum(errs ^ 2)
}

最简单的事情是开始时所有权重都具有相同的值。

init_w <- rep.int(1 / length(x), length(x))

使用optim 进行优化。

optim(init_w, fn)
## $par
## [1] 0.1204827 -1.2438883 1.1023338 1.0212406
##
## $value
## [1] 7.807847e-08
##
## $counts
## function gradient
## 111 NA
##
## $convergence
## [1] 0
##
## $message
## NULL

par 元素包含您的权重。

关于r - 求解 R 中的不定方程组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32625191/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com