用R来求解一元二次方程
2015-12-23 15:41
3439 查看
在R语言中,可以用uniroot()函数来求解方程的某个单根,并且uniroot()的解区间x∈[a,b],要满足a*b<0。对于一元一次方程,需要调用uniroot()一次。对于一元二次方程,由于二次方程一般有2个根,所以需要调用uniroot()两次。
问题:一元二次方程ax^2+bx+c=0, 设a=1, b=5, c=6, 求x?
代码如下:
//fang.R
效果如下:
图(1)该方程有2个根,分别为:-2,-3
问题:一元二次方程ax^2+bx+c=0, 设a=1, b=5, c=6, 求x?
代码如下:
//fang.R
##求一元二次方程ax^2+bx+c=0,设a=1,b=5,c=6,求x? f3 <- function(x,a,b,c) a*x^2+b*x+c a <- 1; b <- 5; c <- 6 result1 <- uniroot(f3,c(0,-2),a=a,b=b,c=c,tol=0.0001) ##用uniroot求解单个根 result2 <- uniroot(f3,c(-4,-3),a=a,b=b,c=c,tol=0.0001) result1$root result2$root ##绘制曲线 y = x^2+5x+6 ##创建数据点 x <- seq(-5,1,by=0.01) y <- f3(x,a,b,c) df <- data.frame(x,y) ##用ggplot2来绘图 library(ggplot2) g <- ggplot(df,aes(x,y)) g <- g+geom_line(col='red') #红色曲线 g <- g+geom_hline(yintercept=0)+geom_vline(yintercept=0) g <- g+ggtitle(paste("y=","x^2+",b,"*x+",c)) g
效果如下:
图(1)该方程有2个根,分别为:-2,-3
相关文章推荐
- R语言 R6Class 读取Ini文件
- R语言书籍的学习路线图
- R语言学习-统计之都
- R的若干基因及争论
- 浅谈R语言的面向对象编程
- 常用的分类评估--基于R语言
- r语言自带数据包
- 灰色系统模型GM(1,1)的R语言实现
- R语言实现两服务员并联服务系统简单随机模拟
- best tool for R
- ggplot2线型图
- R语言基础-矩阵和列表
- R语言基础绘图包--控制axis label位置--par(mgp)与mtext
- R语言入门学习-搭建R语言环境
- R语言与机器学习-学习笔记2(数据探索及理解)
- R语言学习 apply
- R语言数字转字符串:自动补0
- excel中的数据导入到R中
- excel中的数据导入到R中
- R语言数字转字符串:自动补0