A)

MaFonction <- function(x,y) {
result <- sqrt((x+y)*2)
paste("la racine de la somme carré est ",result)
}
MaFonction(2.76,3.25)
B)
four<-function(x) {
return(list(mini=min(x),maxi=max(x)))
}
C)
ma.variance<-function(x) {
sum((x-mean(x))**2)/length(x)
}
x<-1:100
ma.variance(x)
var(x)
ma.variance<-function(x,biased=F) {
if(biased)
sum((x-mean(x))**2)/length(x) else
sum((x-mean(x))**2)/(length(x)-1)
}
x<-1:100
ma.variance(x)
var(x)
ma.variance(x,biased=T)
mamoyenne=function(x){sum(x)/length(x)}
mamoyenne(x)=function(x){
monecartype=function(x){sqrt(mavariance(x))}
sd(x)
Densité
phi <- function(x) {
exp(-x^2/2) / sqrt(2 * pi)
}
phi(0)
dnorm(0)
F)
# Fonction originelle
toto<-mafonction(x,y=true) {
if(y=T) mean(x*a) else print(mean(x*a,na.rm=T)
return(res=sum(x),)
}
#Fonction corrigée
toto<-function(x,a,y=TRUE) {
ifOui print(mean(x*a)) else print(mean(x*a/2,na.rm=T))
return(res=sum(x))
}
G)
C?est la note ?nale
# Fonction originelle
notes.?nales <- function(notes, p) {
netud <- nrow(notes)
neval <- ncol(notes)
?nal <- (1:netud) * 0
for(i in 1:netud) {
1
for(j in 1:neval) {
?nal[i] <- ?nal[i] + notes[i, j] * p[j]
}
}
?nal
}
#Fonction optimisée
notes.?nales2 <- function(notes, p)
apply(t(notes)*p,2,sum)
#Simulation d?un tableau de notes et de pondérations pour essayer la fonction
ns<-20; np<-5
notes<-matrix(runif(ns*np,3,21),ncol=np)
pond<-t(runif(4,1,4))/20
pond<-c(pond,1-sum(pond))
pond
#on véri?e que nos deux fonctions renvoient le même résultat...
notes.?nales(notes,pond)
notes.?nales2(notes,pond)
une moyenne mobile impaire
u=rnorm(1000,15,3)
mm=function(s)
{
m=vector("numeric", length=1001-s)
for(i in s:1000){
m[i-s+1]=mean(u[i-s+1:i])}
print(m)
}
exemple moyenne moble d?ordre 12 des donnée co2
T=(1997-1958)*12
mm<-array(data=co2,dim=c(T))
for(t in 7tristeT-6))
{
mm[t]=(0.5*co2[t-6]+sum(co2[(t-5)tristet+5)])+0.5*co2[t+6])/12
# mm[t]=(0.5*co2[t-6]+co2[t-5]+co2[t-4]+co2[t-3]+co2[t-2]+co2[t-1]+co2[t]+co2[t+1]+co2[t+2]+co2[t+3]+co2[t+4]+co2[t+5]+0.5*co2[t+}
plot(1:T,co2, type=?l?)
lines(mm)
régress=function(x,y){
a=mean(x)
b=cov(x,y)/var(x)
paste("l?equation de régression est y=",a,"x+",b)}
2


Modifié le: mercredi 29 juin 2022, 00:34