本書作者: 吳喜之
操作系統(tǒng):win10
R版本:R-3.3.3
實(shí)踐6 —— 簡單圖形
x <- rnorm(200) #獲取200個隨機(jī)正態(tài)數(shù)
hist(x, col = "light blue") #繪制直方圖
rug(x) #在直方圖下方添加實(shí)際數(shù)值所在位置
stem(x) #繪制莖葉圖
x <- rnorm(500)
y <- x + rnorm(500) #構(gòu)造線性關(guān)系
plot(y~x) #繪制散點(diǎn)圖
a = lm(y~x)
abline(a, col="red") #基于plot添加擬合線
plot(y~x)
abline(lm(y~x), col="red") #一步完成简烤,繪制散點(diǎn)圖胡桨,同時添加擬合線种冬,注意同樣基于plot
print ("Hello World!") #直接打印語句
paste("x的最小值= ", min(x)) #打印語句
demo(graphics) #演示R中自帶的圖形
實(shí)踐7 —— 復(fù)數(shù)運(yùn)算和求函數(shù)極值
(2+4i)^-3.5 + (4.5+2i)*(-1.7-2.3i)/((2.6-7i)*(-4+5.1i)) #進(jìn)行復(fù)數(shù)運(yùn)算
(z <- complex(real=rnorm(10), imaginary=rnorm(10))) #構(gòu)造一個10維復(fù)向量,實(shí)部和虛部均為10個標(biāo)準(zhǔn)狀態(tài)樣本點(diǎn)
complex(real=rnorm(10), imaginary=rnorm(5)) #如果實(shí)部和虛部的樣本點(diǎn)個數(shù)不同丁溅,看看與前一命令有何不同快毛。
Re(z) #列出z中所有復(fù)向量的實(shí)部
Im(z) #列出z中所有復(fù)向量的虛部
Mod(z) #計算各個復(fù)向量的模晤斩。復(fù)數(shù)的模為實(shí)部與虛部平方和的正平方根餐弱。
Arg(z) #計算各個復(fù)向量的輻角宴霸。在復(fù)平面上,復(fù)數(shù)所對應(yīng)的向量與x軸正反向的夾角稱為復(fù)數(shù)的輻角膏蚓∑靶唬可以注意一下,輻角的符號與虛部的符號一致驮瞧。
choose(10, 4) #組合數(shù)氓扛。C(n, m),從n個元素中不重復(fù)地抽取m個元素的組合個數(shù)论笔。 C(n, m)=n!/(m!(n-m)!)
combn(5, 2) #列出所有組合
factorial(6) #計算6的階乘采郎,即6!
f = function(x) x^3-2*x-1 #構(gòu)建方程式
uniroot(f, c(0, 2)) #迭代求根狂魔。結(jié)果中$root 為求解出來的方程近似解蒜埋;$f.root 為在此近似解下的方程值;$iter 為求解過程中毅臊,方程的迭代次數(shù)理茎;$estim.prec 為近似解與較精確解的誤差估計,即近似解與較精確解之間誤差的值不超過這個數(shù)值管嬉。
optimize(f, c(0, 2)) # 計算給定區(qū)間內(nèi)的極值
optimize(f, c(1, 3)) # 注意與前一個命令結(jié)果之間的差別。我還不是特別明白里面的含義朗鸠。
#在R語言中蚯撩,我們可以借助uniroot()函數(shù)來求解方程的某個單根。對于一元一次方程烛占,需要調(diào)用uniroot()一次胎挎;由于二次方程一般有2個根,所以對于一元二次方程忆家,需要調(diào)用uniroot()兩次犹菇。
#題目:求一元二次方程ax^2+bx+c=0,設(shè)a=1芽卿,b=5揭芍,c=6,求x
f <- function(x, a, b, c) a*x^2+b*x+c
a <- 1; b <- 5; c <- 6
result1 <- uniroot(f, c(0, -2), a=a, b=b, c=c, tol=0.0001)
result2 <- uniroot(f, c(-3, -4), a=a, b=b, c=c, tol=0.0001)
result1$root
result2$root
#也可以用作圖的方式求解
x <- seq(-5, 1, by=0.01)
y <- f(x, a, b, c)
df <- data.frame(x, y)
library(ggplot2)
g <- ggplot(df, aes(x, y))
g <- g + geom_line(col="red")
g <- g + geom_hline(yintercept=0) + geom_vline(xintercept=0)
g <- g + ggtitle(paste("y=", "x^2+", b, "x+", c))
g #從圖中我們可以得到該方程的兩個根
實(shí)踐6主要介紹R的作圖功能卸例,強(qiáng)大的繪圖功能正是許多人喜歡R的原因之一称杨;實(shí)踐7開始涉及基礎(chǔ)運(yùn)算肌毅,需要結(jié)合相應(yīng)的數(shù)學(xué)知識慢慢理解。