+ Näytä koodi- Piilota koodi
PitoAikaMax <- 7 # aika vuosissa
#OmatRahat <- 0 # vahentaa lainarahan maaraa
#SaamattaJaavaKorko <- 0.02 # milla korolla lainaraha kasvaisi ilman lainaa
#LainaAika <- 2 # aika vuosissa
#LainaKorko <- 0.065 # lainan korko
#PolttoAineenHinta <- 1.62 # bensiinin tai dieselin litrahinta
#AutonHinta <- 51190 # euroa
#Kulutus <- 7.1 # l/100 km
HiilidioksidiPaastot <- 0.163 # g/km
#ArvonAlennusProsentti <- 0.12 # %/vuosi
#AjoneuvoveroPerV <- 105.85 # euroa/vuosi
#LiikenneVakuutusPerV <- 315 # euroa/vuosi
#KaskoVakuutusPerV <- 550 # euroa/vuosi
#SailytysPysakointiPerV <- 468 # sailytys ja pysakointikulut (euroa/vuosi)
#RengasKuluPerKMV <- 150 # Rengaskulut/vuosi/10000km
#HuoltoKorjausPesuPerKMV <- 340 # Huolto-, korjaus- ja pesukulut/vuosi/10000km
KorvausPerKM <- 0.45 # euroa/km
#
N <- 8 # Intervallien maara
Intervalli <- 5000 # Intervallin pituus (km)
P <- 10 # Jaotus 100/P prosenttiyksikon intervalliin
# Luodaan muuttuville kustannuksille taulukko, jossa akseleina
# (1) km-korvauksen piiriin kuuluvien ajojen maara kaikista
# ajoista (floor(100/P) + 1 alkiota, esim. jos P = 10 =>
# akselilla arvot [0%, 10%, 20%, ..., 90%, 100%]),
# (2) kokonaisajosuorite ((N+1) alkiota, jokainen vastaa 5000 km intervallia =>
# akselilla arvot [0km, 5000km, 10000km ..., 35000km, 40000km]),
# (3) pitoaika (MaxPitoAika alkiota, esim. jos MaxPitoAika = 7 =>
# akselilla arvot [1v, 2v, ..., 6v, 7v]).
# Taulokko alustetaan nollilla:
#
Pmax <- floor(100/P) + 1
Nmax <- N+1
MuuttuvatKulut <- array(0, c(Pmax,Nmax,PitoAikaMax))
for(t in 1:PitoAikaMax) {
for(p in 1:Pmax) {
for(n in 1:Nmax) {
PolttoAineKulut <- ((Kulutus/100)*(n-1)*Intervalli*PolttoAineenHinta)*t
#
RengasKulut <- RengasKuluPerKMV*((n-1)*Intervalli/10000)*t
#
HuoltoKorjausPesuKulut <- HuoltoKorjausPesuPerKMV*((n-1)*Intervalli/10000)*t
#
KilometriKorvaus <- (KorvausPerKM*(n-1)*Intervalli*(p-1)*P/100)*t
#
MuuttuvatKulut[p,n,t] <- PolttoAineKulut + RengasKulut +
HuoltoKorjausPesuKulut - KilometriKorvaus
}
}
}
# Luodaan paaomakustannuksille taulukko, jossa akselina pitoaika
PaaomaKulut <- array(0, c(PitoAikaMax))
# Taytetaan PaaomaKulut-taulukko siihen kuuluvilla kuluerilla:
#
for(t in 1:PitoAikaMax) {
ArvonAlennus <- AutonHinta*(1 - (1 - ArvonAlennusProsentti)**t)
#
# Lasketaan korkotappiot olettamalla tasalainalyhennys kerran vuodessa:
kp <- 1 + LainaKorko
Annuiteetti <- (AutonHinta - OmatRahat)*(kp**LainaAika)*LainaKorko/(kp**LainaAika - 1)
KorkoMenot <- Annuiteetti*LainaAika - (AutonHinta - OmatRahat)
# Huom! Poikkeaa maaritelmasta, jonka mukaan paaoman korko lasketaan
# vuoden alussa jaljella olevalle investoidulle paaomalle.
#
LiikenneVakuutus <- LiikenneVakuutusPerV*t
#
KaskoVakuutus <- KaskoVakuutusPerV*t
#
AjoneuvoVero <- AjoneuvoveroPerV*t
#
SailytysPysakointi <- SailytysPysakointiPerV*t
#
PaaomaKulut[t] <- ArvonAlennus + KorkoMenot + LiikenneVakuutus +
KaskoVakuutus + AjoneuvoVero + SailytysPysakointi
}
# Laajennetaan Paaomakulut samankokoiseksi taulukoksi kuin
# MuuttuvatKulut-taulukko
PaaomaKulut2 <- array(0, c(Pmax,Nmax,PitoAikaMax))
for(t in 1:PitoAikaMax) {
PaaomaKulut2[1:Pmax,1:Nmax,t] <- PaaomaKulut[t]
}
# Lasketaan kokonaiskustannukset pitoajalta
KokonaisKulut <- array(0, c(Pmax,Nmax,PitoAikaMax))
KokonaisKulut <- MuuttuvatKulut + PaaomaKulut2
KokonaisKulutPerKM <- array(0, c((Pmax-1),(Nmax-1),PitoAikaMax))
for(t in 1:PitoAikaMax) {
for(p in 1:(Pmax-1)) {
for(n in 1:(Nmax-1)) {
KokonaisKulutPerKM[p,n,t] <- KokonaisKulut[p,n,t]/(n*Intervalli*t)
}
}
}
# Visualisointi
#
filled.contour(t(MuuttuvatKulut[,,1]), plot.title = title(main = "Käyttökulujen ja km-korvauksen erotus euroina pitoajalta 1v",
xlab = "Ajokilometrit 0 - 40000 km/v", ylab = "Työmatkojen osuus 0 - 100 %"), key.title = title(main="euroa"))
filled.contour(t(MuuttuvatKulut[,,3]), plot.title = title(main = "Käyttökulujen ja km-korvauksen erotus euroina pitoajalta 3v",
xlab = "Ajokilometrit 0 - 40000 km/v", ylab = "Työmatkojen osuus 0 - 100 %"), key.title = title(main="euroa"))
filled.contour(t(MuuttuvatKulut[,,5]), plot.title = title(main = "Käyttökulujen ja km-korvauksen erotus euroina pitoajalta 5v",
xlab = "Ajokilometrit 0 - 40000 km/v", ylab = "Työmatkojen osuus 0 - 100 %"), key.title = title(main="euroa"))
filled.contour(t(MuuttuvatKulut[,,7]), plot.title = title(main = "Käyttökulujen ja km-korvauksen erotus euroina pitoajalta 7v",
xlab = "Ajokilometrit 0 - 40000 km/v", ylab = "Työmatkojen osuus 0 - 100 %"), key.title = title(main="euroa"))
#
# n=5 (ajettuja kilometreja = (n-1)*Intervalli = 20000km)
# Pystyakselilla autoilijan kustannukset euroissa kun km-korvauttavien
# ajokilometrien maara nousee 0% - 100% (alhaalta ylos). Negatiivinen
# kustannus tarkoittaa etta autoilija nettoaa.
#
par(mfcol = c(2,2))
plot(MuuttuvatKulut[,5,1]); title("Käyttökulujen ja km-korvauksen erotus, pitoaika 1v, 20000km/v")
plot(MuuttuvatKulut[,5,5]); title("Käyttökulujen ja km-korvauksen erotus, pitoaika 5v, 20000km/v")
plot(MuuttuvatKulut[,5,3]); title("Käyttökulujen ja km-korvauksen erotus, pitoaika 3v, 20000km/v")
plot(MuuttuvatKulut[,5,7]); title("Käyttökulujen ja km-korvauksen erotus, pitoaika 7v, 20000km/v")
| |