天天看點

《R的極客理想——進階開發篇 A》一一1.2 R語言中的數學計算

本節書摘來華章計算機出版社《r的極客理想——進階開發篇 a》一書中的第1章,第1.2節,作者:張丹 更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。

問題

如何用r語言進行數學計算?

《R的極客理想——進階開發篇 A》一一1.2 R語言中的數學計算

引言

r語言是統計語言,生來就對數學有良好的支援,用r語言做數學的計算題特别友善。如果電腦中能嵌入r語言的計算函數,那麼絕對是一種高科技産品。我真的把r語言當成我的電腦了!

1.2.1 基本計算

r語言對數學計算有着非常好的支援,本節将完整介紹初等數學中的各種計算操作。

本節的系統環境是:

用r語言實作四則運算操作,包括加、減、乘、除、餘數、整除、絕對值、判斷正負。

用r語言實作累積計算操作,包括累加、累乘、最小累積、最大累積。

《R的極客理想——進階開發篇 A》一一1.2 R語言中的數學計算

2.?反三角函數

基本的反三角函數定義如下。

用r語言實作反三角函數的計算,包括反正弦、反餘弦、反正切。

反三角函數畫圖,以下代碼生成反三角函數曲線,如圖1-5所示。

library(testthat) # 加載testthat包 a<-5;b<-10 # 定義變量 平方和公式:

sin2(x)+cos2(x)=1

sin(a)^2+cos(a)^2

[1] 1

ai<-5+2i;ai # 直接建立複數

[1] 5+2i

class(ai) # 檢視複數的類型

[1] "complex"

is.complex(bi)

[1] true

re(ai) # 實數部分

[1] 5

im(ai) # 虛數部分

[1] 2

mod(ai) # 取模

[1] 5.385165 # sqrt(5^2+2^2) = 5.385165

arg(ai) # 取輻角

[1] 0.3805064

conj(ai) # 取轭
a<-5;b<-2;c<-3;d<-4 ai<-complex(real=a,imaginary=b) bi<-complex(real=c,imaginary=d)
expect_that(complex(real=(a+c),imaginary=(b+d)),equals(ai+bi)) expect_that(complex(real=(a-c),imaginary=(b-d)),equals(ai-bi)) expect_that(complex(real=(ac-bd),imaginary=(ad+bc)),equals(ai*bi)) expect_that(complex(real=(ac+bd),imaginary=(bc-ad))/(c^2+d^2),equals(ai/bi))
x<-seq(-5,5,by=0.01) # 建立資料點 y<-f1(x,a,b) df<-data.frame(x,y) g<-ggplot(df,aes(x,y)) # 用ggplot2來畫圖 g<-g+geom_line(col='red') # 紅色直線 g<-g+geom_point(aes(result$root,0),col="red",size=3) # 點 g<-g+geom_hline(yintercept=0)+geom_vline(yintercept=0) # 坐标軸 g<-g+ggtitle(paste("y =",a,"* x +",b)) g

繼續閱讀