我想将曲线拟合为一组3个数据点(1,65),(200,70),(800,75),形式为
$ y = \ frac {ax} {b + x} $
使用点集,我有这组方程式
$ a-65b = 65 $
$ 200a-70b = 14000 $
$ 800a-75b = 60000 $
以 $ Ax = b $ 形式重写:
$$ \ begin {pmatrix} 1和-65 \\ 200和-70 \\ 800和-75 \\ \ end {pmatrix} \ begin {pmatrix} 一种 \\ b \ end {pmatrix} = \ begin {pmatrix} 65 \\ 14000 \\ 60000 \ end {pmatrix} $$
这没有解决方案,因此我想使用最小二乘拟合。手动解决 $ A ^ TAx = A ^ Tb $ ,我终于得到: $$ \开始{pmatrix} 680001a−74065b \\ −74065a + 14750b \ end {pmatrix} = \ begin {pmatrix} 50800065 \\ −5484225 \ end {pmatrix} $$
我使用solve函数来求解这组方程,如下所示:
a <- matrix(c(680001, -74065, -74065, 14750), 2, 2)
b <- c(50800065, -5484225)
solve(a,b)
这给了我我想要的参数。但是,我的问题是关于在R上执行此操作而不进行任何手动计算。所以我想自动解决 $ A ^ TAx = A ^ Tb $ 。