- 参考:
- 在R里面对三元一次方程求解 - 云 社区 - 腾讯云 (tencent.com)[1]
- 使用R solve(a,b)解方程 - 1-阿里云开发者社区 (aliyun.com)[2]
前言
忽然发现R 连方程我还不会。这怎么可以,赶紧学学。
直接操作
比如这里我们要求解一个三元一次方程,那最简单的就是消元的思想了,也就是让三元变二元再变一元:
- ①利用代入法或加减法,消去一个未知数,得出一个二元一次方程组;
- ②解这个二元一次方程组,求得两个未知数的值;
- ③将这两个未知数的值代入原方程中较简单的一个方程,求出第三个未知数的值,把这三个数写在一起的就是所求的三元一次方程组的解。
在R 中的话,我们可以借助矩阵,利用solve 函数计算。
这个函数可以接受两个参数:solve(A,b)
:
- A 为方程组的系数矩阵;
- b 则是方程组等式右端的常数向量;
比如已知方程组:
代码语言:javascript复制2.6x 0.3y 25.9z = 116
20.6x 13.5y = 202
8x 3.3y 40.3z = 221
那我们就先制作一下solve 函数的输入:
代码语言:javascript复制> A <- matrix(c(2.6, 0.3, 25.9, 20.6, 13.5, 0, 8, 3.3, 40.3), ncol = 3, byrow = T)
> A
[,1] [,2] [,3]
[1,] 2.6 0.3 25.9
[2,] 20.6 13.5 0.0
[3,] 8.0 3.3 40.3
> b <- c(116, 202, 221)
直接调用函数即可:
代码语言:javascript复制> solve(A,b)
[1] 5.117247 7.154422 3.882194
也就对应我们上面的x,y,z 了。
ps:当我读到最后的时候,就发现这个教程并没有意向的那么朴素了。
尤其是:
★在R里面解方程真的是非常方便啊,我不禁在想,如果我大学本科就知道了R这个神器,高等数学,线性代数,概率论应该就理解的更牢固吧?不过好像意义也不大,因为离开校园后它们的用处几乎没有,而学习它们的时候无法也就是考试分数更高,可是已经都是满分了,除非去逼迫授课老师把考题出难一点。 ”
手动狗头一下。
对了,你还有其他方法解方程吗?
参考资料
[1]
在R里面对三元一次方程求解 - 云 社区 - 腾讯云 (tencent.com): https://cloud.tencent.com/developer/article/1654486
[2]
使用R solve(a,b)解方程 - 1-阿里云开发者社区 (aliyun.com): https://developer.aliyun.com/article/11164