学习笔记,仅供参考,有错必纠

参考自:《R的极客理想》-- 张丹


文章目录

  • R开发
    • R语言中的数学计算
      • 对数
      • 加权平均、连乘、差分、秩、任意数、全体数
      • 阶乘、组合、排列
      • 累加、累乘、最小累积、最大累积
      • 正弦、余弦、正切、反正弦、反余弦、反正切
      • 复数
      • 方程计算

R开发

R语言中的数学计算

对数

R>a <- 2
R>b <- 4
R>c <- exp(1)
R>
R>#以2为底的对数
R>log2(b)
[1] 2
R>
R>#以10为底的对数
R>log10(b)
[1] 0.60206
R>
R>#自定义底的对数
R>log(exp(2), base = c)
[1] 2

加权平均、连乘、差分、秩、任意数、全体数

R>d <- seq(1, 10, 2)
R>#加权平均
R>weighted.mean(d, c(1, 2, 3, 4, 5))
[1] 6.333333
R>#连乘
R>prod(1:5)
[1] 120
R>#差分
R>diff(d)
[1] 2 2 2 2
R>#秩
R>rank(d)
[1] 1 2 3 4 5
R>#中位数
R>median(d)
[1] 5
R>#任意条件满足返回TRUE
R>any(d < 5)
[1] TRUE
R>#全体条件满足返回TRUE
R>all(d < 5)
[1] FALSE

阶乘、组合、排列

R>#5的阶乘
R>factorial(5)
[1] 120
R>
R>#组合,从5个中选出2个
R>choose(5, 2)
[1] 10
R>
R>#排列,从5个中选出2个
R>choose(5, 2)*factorial(2)
[1] 20

累加、累乘、最小累积、最大累积

R>d <- 1:5
R>#累加
R>cumsum(d)
[1]  1  3  6 10 15
R>#累乘
R>cumprod(d)
[1]   1   2   6  24 120
R>#最小累积
R>cummin(d)
[1] 1 1 1 1 1
R>#最大累积
R>cummax(d)
[1] 1 2 3 4 5

正弦、余弦、正切、反正弦、反余弦、反正切

R>#sin
R>sin(0);sin(pi/2)
[1] 0
[1] 1
R>#cos
R>cos(0);cos(pi/2)
[1] 1
[1] 6.123032e-17
R>#tan
R>tan(0);tan(pi/4)
[1] 0
[1] 1
R>#asin
R>asin(0);asin(1)
[1] 0
[1] 1.570796
R>#acos
R>acos(0);acos(1)
[1] 1.570796
[1] 0
R>#atan
R>atan(0);atan(1)
[1] 0
[1] 0.7853982

复数

R>#创建1个复数
R>ai <- 5 + 2i
R>#查看复数的类型
R>class(ai)
[1] "complex"
R>#通过complex创建复数
R>bi <- complex(real = 5, imaginary = 2)
R>#查看是否为复数
R>is.complex(bi); is.complex(5)
[1] TRUE
[1] FALSE
R>#实数部分
R>Re(ai)
[1] 5
R>#虚数部分
R>Im(ai)
[1] 2
R>#取模
R>Mod(ai)
[1] 5.385165
R>#取辐角
R>Arg(ai)
[1] 0.3805064
R>#取轭
R>Conj(ai)
[1] 5-2i
R>#复数开平方根
R>sqrt(complex(real = -9))
[1] 0+3i

方程计算

uniroot()函数每次只能计算一个根,而且要求输入的区间端点值必须是正负号相反的。

求一元一次方程a*x + b = 0 的根:

f1 <- function(x, a, b) {return(a*x + b)
}a <- 5; b <- 10;
#在(-10,10)的区间,精确度为0.0001位,计算方程的根
result <- uniroot(f1, c(-10, 10), a = a, b = b, tol = 0.0001)
result$root #-2

求一元二次方程a*x^2 + b*x + c的根:

f2 <- function(x, a, b, c) {return(a*x^2 + b*x + c)
}a <- 1; b <- 5; c <- 6 result1 <- uniroot(f2, c(0, -2), a = a, b = b, c = c, tol = 0.0001)
result1$root #-2
result2 <- uniroot(f2, c(-4, -3), a = a, b = b, c = c, tol = 0.0001)
result2$root #-3

R语言还可以用来解二元方程组,当然计算方法其实是利用了矩阵计算,下面是x1,x2两个未知变量组成的方程组:
f(x)={3x1+5x2=4x1+2x2=1f(x) = \begin{cases} 3x_1 + 5x_2 = 4 \\ x_1 + 2x_2 = 1 \end{cases} f(x)={3x1​+5x2​=4x1​+2x2​=1​
以矩阵形式来构建方程组就是:
[3512]⋅[x1x2]=[41]\begin{bmatrix} 3 & 5 \\ 1 & 2 \\ \end{bmatrix} \cdot \begin{bmatrix} x_1 \\ x_2 \\ \end{bmatrix} = \begin{bmatrix} 4 \\ 1 \\ \end{bmatrix} [31​52​]⋅[x1​x2​​]=[41​]

R实现:

lf <- matrix(c(3, 5, 1, 2), nrow = 2, byrow = TRUE)
rf <- matrix(c(4, 1), nrow = 2)
result <- solve(lf, rf)
result

输出:

     [,1]
[1,]    3
[2,]   -1

R开发(part2)--R语言中的数学计算相关推荐

  1. R语言中的数学计算(转载)

    R语言中的数学计算 关于作者: 张丹(Conan), 程序员Java,R,PHP,Javascript weibo:@Conan_Z blog: http://blog.fens.me email: ...

  2. 用计算机怎么计算r角度,R语言中的数学计算

    原标题:R语言中的数学计算 前言 R是作为统计语言,生来就对数学有良好的支持,一个函数就能实现一种数学计算,所以用R语言做数学计算题特别方便.如果计算器中能嵌入R的计算函数,那么绝对是一种高科技产品. ...

  3. c语言打印qword类型,c/c++开发分享c语言中数据类型BYTE,WORD和DWORD的格式说明符?...

    在 例如,如果我尝试使用"%lu"显示BPB_BytsPerSec,我会得到不同寻常的数据. printf("Bytes per Sector: %lu", b ...

  4. Shell脚本笔记(三)shell中的数学计算

    shell中的数学计算 一.使用方括号 #!/bin/bash a=10 b=29 c=88res=$[$a * ($c-$b)] echo $res 二.使用(()) echo $((1+9)) ( ...

  5. R开发(part1)--R语言知识体系结构

    学习笔记,仅供参考,有错必纠 参考自:<R的极客理想>-- 张丹 R开发 R语言知识体系结构 R简介 R语言是一门统计语言,主要用于数学建模.统计计算.数据处理.可视化等几个方向,R语言天 ...

  6. 【Android NDK 开发】Kotlin 语言中使用 NDK ( 创建支持 Kotlin 的 NDK 项目 | Kotlin 语言中使用 NDK 要点 | 代码示例 )

    文章目录 一.创建支持 Kotlin 的 NDK 项目 二.Kotlin 语言中使用 NDK 要点 1.加载动态库 2.声明 ndk 方法 3.Project 下的 build.gradle 配置 4 ...

  7. GIS开发:地图中的数学计算(Mercator)

    引言 在地图的开发中,会涉及到各种的数学计算,比如距离.角度计算等,经纬度坐标系的情况下,地图使用的坐标是经纬度的形式,单位是度,而计算距离的时候,结果是米制单位,这就需要其中有一个转换,或者存在对应 ...

  8. shell中的数学计算

    shell中的赋值和操作默认都是字符串处理,在此记下shell中进行数学运算的几个特殊方法,以后用到的时候可以来看,呵呵.    1.错误方法举例    a)    var=1+1    echo $ ...

  9. 语言中拟合函数 计算aic_Go语言函数深度解析(中)

    上回函数深度解析给大家聊了一些函数的基本知识,不知道还有没有人记得,不记得赶紧回去复习! 他们是 go语言中函数的基本原理 单/多个同/不同类型参数 单/多个同/不同类型返回值 值传递,引用传递 函数 ...

最新文章

  1. 给JFinal添加 Sqlite 数据库支持
  2. Oracle其他函数
  3. Struts2.xml
  4. JIRA6.3.6中设置用户的解决问题和关闭问题权限
  5. Oracle数据库分页的三种方法
  6. window media player出现内部应用程序错误
  7. jquery.treeview.js php mysql,jquery.treeview应用
  8. 语言 micropython_【雕爷学编程】MicroPython动手做(03)——零基础学MaixPy之开机测试...
  9. Gerrit 服务搭建和升级详解(包括 H2 数据库迁移 MySQL 步骤)
  10. T400笔记本Fn+F3、Fn+F8失效
  11. 三岁小孩开发搜索引擎,搜索引擎白热化[原创]
  12. spring整合redis菜鸟版
  13. Win10家庭版远程桌面工具RDP Wrapper
  14. JAVA将图片转成base64导出到word中
  15. KICAD——手动生成嘉立创可识别的BOM和POS文件
  16. 菲尔兹奖-历届获得者
  17. 页面验证是否是真实有效的身份证号码
  18. 三千字的HashMap灵魂拷问
  19. iview导出使用了前端分页的所有表格数据
  20. 科技拾遗|成为传奇的哈勃望远镜,曾经居然被当做笑话?

热门文章

  1. OpenCV学习笔记二
  2. tensorflow学习笔记:tf.data.Dataset,from_tensor_slices(),shuffle(),batch()的用法
  3. linux 字符串加入中括号,方括号及其在命令行中的不同用法介绍
  4. 20172317 2018-2019-1 《程序设计与数据结构》 第五周学习总结
  5. Yii 2.0高级版 下拉框预设值、默认值
  6. 老男孩教育50期左婷婷-day03-xhell连接服务器-远程连接排错-基础命令
  7. LDAP 中关于CN,OU,DC的含义
  8. Linux系统/网络管理
  9. 今年的假期挺长的~~~
  10. UML模型中的图-行为图【状态图、活动图】