美文网首页
用R语言解方程

用R语言解方程

作者: Jason数据分析生信教室 | 来源:发表于2023-08-30 08:12 被阅读0次

最近接触到一些工学上的数学计算,琢磨着如何用R来轻松秒杀,总结出了一些方法。

1. 使用逆行列矩阵

举个例子,解下面的二元一次方程
2x+3y=8
x-2y=5
这个用最简单的线性代数就行,Av=b。
R的话用到solve来求逆行列。

> A=matrix(c(2,1,3,-2),2,2)
> A
     [,1] [,2]
[1,]    2    3
[2,]    1   -2
> b=c(8,5)
> b
[1] 8 5
> solve(A,b)
[1]  4.4285714 -0.2857143

三元方程的话也是一样的,只不过A多了一列而已。

2. 用nleqslv函数

R还有专门的求解方程的包nleqslv。当然不只是解方程,求最优值什么的也可以用这个包。安装完了包来解决同样的问题。

g <- function(z)
{ x = z[1]
  y = z[2]
  f1 = 2*x+3*y-8
  f2 = x-2*y-5  
  c(f1,f2)
}
nleqslv(c(1, 1), g) # 制定起始值

可以求得同样的结果

> result<-nleqslv(c(1, 1), g)
> result$x
[1]  4.4285714 -0.2857143

当然这只是最简单的例子,这个包主要用于计算高次元非线形方程。
比方说
3x+xy=15
x*x+2y=20
这个时候解肯定不止一个,用R的话可以先把这两个函数可视化一下,然后用可交互界面鼠标点击两个函数的交点,给出初始值,求解。

x=seq(-10, 20, 0.5)
y=seq(-10,20,0.5)
f1=function(x,y) 3*x+x*y - 15
f2=function(x,y) x^2+y*2-20
z1 = outer(x, y, f1)
z2 = outer(x, y, f2)
contour(x, y, z1, levels=0,ylim=c(-10,20))
contour(x, y, z2, levels=0,col=2,add=T)
abline(h=0,col=8); abline(v=0,col=8)
grid()
#定义联列方程式
library(nleqslv)
g= function(z) {
  x = z[1]
  y = z[2]
  f1 = 3*x+ x*y - 15 # 方程式1
  f2 = x^2+y*2-20 # 方程式2
  c(f1, f2) 
}
#求解
p=locator(1); points(p,col=4) # 指定初始值
x0=p$x ; y0=p$y # 鼠标点击指定初始值
ans = nleqslv(c(x0,y0), g) #求解
ans$x
points(ans$x[1],ans$x[2],pch=20,col=2)
q=locator(1); # 用鼠标点击指定text的位置
text(q$x,q$y,paste("x=",round(ans$x[1],3),"y=",round(ans$x[2],3)))

以上

相关文章

  • 数据分析R语言实战(四)

    参数估计 R中的解方程函数 点估计 矩估计

  • 用R语言画图

    箱线图 boxplot()是箱线图的绘制函数,一般上下两条线为该数据集合的两个极值,极大值和极小值,箱子上下边缘是...

  • R 语言实战 读书笔记

    R语言实战(第2版) 学习笔记 1. R语言介绍 1.1 为什么用R语言 bla 1.2 基本操作 图表演示命令 ...

  • 学习小组Day4笔记--快乐小胡

    R语言来了 1.安装R和Rstudio 2.设置字体大小 、 3.R语言基本操作 3.1 用Rproject管理工...

  • R语言学习

    R语言基础入门 良好的R使用习惯 R支持中文,但不好!建议用全英文环境。 R语言具有严格的符号与语法控制,建议使用...

  • R语言的调色转化

    我们在R语言ggplot2或者base-R绘图时,经常需要使用不同颜色搭配,但如何选颜色在r语言用基础语言实现。(...

  • R语言实战-1入门简介

    今晚开始正式学习R语言实战 1.R语言简介 1.1为何使用R 问问自己为何学习R?为了用文章里画图,为了能生动的展...

  • 生信星球学习小组Day4笔记-柠萌

    Day4-R语言基础 思维导图如下:R语言基础.png 1.下载R和Rstudio 用搜狗微信搜索:“果子学生信 ...

  • 用Python解方程

    我们先从简单的来 例题1: 这是北师大版小学六年级上册课本95页的一道解方程练习题:   大家可以先口算一下,这道...

  • DAY4笔记-Leo

    安装R和Rstudio 认识R和Rstudio 设置字体大小 R语言基本操作 用Rprojiect管理目录 显示文...

网友评论

      本文标题:用R语言解方程

      本文链接:https://www.haomeiwen.com/subject/bfwomdtx.html