Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 数学上有可能解决这个问题吗? x_R - Fatal编程技术网

R 数学上有可能解决这个问题吗? x

R 数学上有可能解决这个问题吗? x,r,R,不,不可能。你有三个未知数。这意味着您需要三个独立的信息(方程)来解决所有三个问题y只提供一条信息。知道x是正的会带来约束,但不一定允许您求解。例如: x1+x2+x3=6 不允许你解决。x1=1,x2=2,x3=3是一个解决方案,但x1=1,x2=1,x3=4也是一个解决方案。还有许多其他的解决办法。[施加“全正”约束将排除x1=100、x2=200、x3=-294等解决方案,但通常会留下多个剩余解决方案。] x1+x2+x3=6, x1+x2-x3=0 将x3限制为3,但允许x1和x2的任意

不,不可能。你有三个未知数。这意味着您需要三个独立的信息(方程)来解决所有三个问题<代码>y只提供一条信息。知道
x
是正的会带来约束,但不一定允许您求解。例如:

x1+x2+x3=6

不允许你解决。x1=1,x2=2,x3=3是一个解决方案,但x1=1,x2=1,x3=4也是一个解决方案。还有许多其他的解决办法。[施加“全正”约束将排除x1=100、x2=200、x3=-294等解决方案,但通常会留下多个剩余解决方案。]

x1+x2+x3=6, x1+x2-x3=0

将x3限制为3,但允许x1和x2的任意解,前提是x1+x2=3

x1+x2+x3=6, x1+x2-x3=0, x1-x2+x3=2


给出了唯一的解决方案x1=1,x2=2,x3=3。

不,这是不可能的。你有三个未知数。这意味着您需要三个独立的信息(方程)来解决所有三个问题<代码>y只提供一条信息。知道
x
是正的会带来约束,但不一定允许您求解。例如:

x1+x2+x3=6

不允许你解决。x1=1,x2=2,x3=3是一个解决方案,但x1=1,x2=1,x3=4也是一个解决方案。还有许多其他的解决办法。[施加“全正”约束将排除x1=100、x2=200、x3=-294等解决方案,但通常会留下多个剩余解决方案。]

x1+x2+x3=6, x1+x2-x3=0

将x3限制为3,但允许x1和x2的任意解,前提是x1+x2=3

x1+x2+x3=6, x1+x2-x3=0, x1-x2+x3=2

给出唯一的解决方案x1=1,x2=2,x3=3。

将f定义为

x <- abs(rnorm(8))
C <- (x[1]*x[2]*x[3])^(1/3)
y <- log(x/C)
在这种情况下,f(x)等于:

反演公式 根据这个公式,给定y并求解x,x的值等于

A %*% log(x)
如果A是可逆的,但不幸的是它不是。例如,
rowSums(A)
等于零,这表明A的列是线性相关的,这意味着不可逆性

exp(solve(A) %*% y)  ##   would equal x if A were invertible
秩与零空间 请注意,A是一个投影矩阵。这是因为它是幂等的,即
A%*%A
等于
A

all.equal(rowSums(A), rep(0, 8))
## [1] TRUE
其特征值均为0和1这一事实也证明了这一点:

all.equal(A %*% A, A)
## [1] TRUE
从特征值我们可以看到A的秩为7(非零特征值的数目),零空间的维数为1(零特征值的数目)

另一种方法是知道A是一个投影矩阵,它的秩等于它的迹,也就是7,所以它的空空间的维数必须是8-7=1

zapsmall(eigen(A)$values)
## [1] 1 1 1 1 1 1 1 0
采用标量倍数跨越一维空间,因此从nullspace的维度为1这一事实来看,它必须是映射到同一y的全部值

关键公式 现在用广义逆代替上面###中的解,我们有一个关键公式来近似x,假设x的y=f(x):

sum(diag(A))  # rank of A
## [1] 7
或者,如果y=f(x),则等效

虽然它们不能给出x,但它们可以确定x的一个标量倍数。也就是说,如果x'是由上述表达式产生的值,那么对于某些标量常数k,x等于
k*x'

例如,使用问题中的x和y:

exp(y - mean(y))
笔记 注意,y-平均值(y)可以写成

exp(ginv(A) %*% y)
##           [,1]
## [1,] 1.2321318
## [2,] 0.5060149
## [3,] 3.4266146
## [4,] 0.1550034
## [5,] 0.2842220
## [6,] 3.7703442
## [7,] 1.0132635
## [8,] 2.7810703

exp(y - mean(y))  # same
## [1] 1.2321318 0.5060149 3.4266146 0.1550034 0.2842220 3.7703442 1.0132635
## [8] 2.7810703

exp(y - mean(y))/x
## [1] 2.198368 2.198368 2.198368 2.198368 2.198368 2.198368 2.198368 2.198368
矩阵ginv(A)等于B不是真的,只是它们在A的范围内作用相同,这是我们所需要的。

将f定义为

x <- abs(rnorm(8))
C <- (x[1]*x[2]*x[3])^(1/3)
y <- log(x/C)
在这种情况下,f(x)等于:

反演公式 根据这个公式,给定y并求解x,x的值等于

A %*% log(x)
如果A是可逆的,但不幸的是它不是。例如,
rowSums(A)
等于零,这表明A的列是线性相关的,这意味着不可逆性

exp(solve(A) %*% y)  ##   would equal x if A were invertible
秩与零空间 请注意,A是一个投影矩阵。这是因为它是幂等的,即
A%*%A
等于
A

all.equal(rowSums(A), rep(0, 8))
## [1] TRUE
其特征值均为0和1这一事实也证明了这一点:

all.equal(A %*% A, A)
## [1] TRUE
从特征值我们可以看到A的秩为7(非零特征值的数目),零空间的维数为1(零特征值的数目)

另一种方法是知道A是一个投影矩阵,它的秩等于它的迹,也就是7,所以它的空空间的维数必须是8-7=1

zapsmall(eigen(A)$values)
## [1] 1 1 1 1 1 1 1 0
采用标量倍数跨越一维空间,因此从nullspace的维度为1这一事实来看,它必须是映射到同一y的全部值

关键公式 现在用广义逆代替上面###中的解,我们有一个关键公式来近似x,假设x的y=f(x):

sum(diag(A))  # rank of A
## [1] 7
或者,如果y=f(x),则等效

虽然它们不能给出x,但它们可以确定x的一个标量倍数。也就是说,如果x'是由上述表达式产生的值,那么对于某些标量常数k,x等于
k*x'

例如,使用问题中的x和y:

exp(y - mean(y))
笔记 注意,y-平均值(y)可以写成

exp(ginv(A) %*% y)
##           [,1]
## [1,] 1.2321318
## [2,] 0.5060149
## [3,] 3.4266146
## [4,] 0.1550034
## [5,] 0.2842220
## [6,] 3.7703442
## [7,] 1.0132635
## [8,] 2.7810703

exp(y - mean(y))  # same
## [1] 1.2321318 0.5060149 3.4266146 0.1550034 0.2842220 3.7703442 1.0132635
## [8] 2.7810703

exp(y - mean(y))/x
## [1] 2.198368 2.198368 2.198368 2.198368 2.198368 2.198368 2.198368 2.198368

矩阵ginv(A)不是真的等于B。它们在A的范围内的作用是相同的,这是我们所需要的。

我认为这在数学上是不可能的,因为如果给定
y
x
值是
C
的倍数,当你试图计算
C
时,总是会返回
1
。因此,我认为您无法计算
x[1:3]
欢迎使用堆栈溢出。这是一个关于编程和代码问题的网站。问你的问题会更好吗?提示:你可以使用对数属性编写一个线性方程组,其形式为
y[1]、y[2]、y[3]
log(x[1])、log(