Costi e guadagni
In alcune produzioni i costi totali (vedi qui, e
qui per approfondimenti) aumentano in proporzione all'aumento del n° di pezzi
prodotti
Il grafico è una retta che interseca l'asse verticale in corrispondenza del valore dei costi fissi (Cf).
Nel caso raffigurato sotto a sinistra Ct = 30 000 + 0.05 n. Potrebbero essere i costi di una piccola tipografia che stampa fogli in un unico formato con 0.05 € di costi incorporati in ogni foglio stampato per carta, inchiostro, energia elettrica, ... e 30 mila € di spese fisse annue per un addetto alle macchine, l'affitto, ).
Nel caso della stessa produzione, il costo unitario (Cu = Ct / n, ovvero Cu = Cf / n + Ci) ha una variazione inversamente proporzionale alla variazione del n° di pezzi prodotti. Il suo grafico (vedi sotto a destra) è una iperbole che ha asintoto orizzontale ad una quota pari al valore di Ci.
Più precisamente Cu = 30 000 / n + 0.05.
All'aumentare dei fogli stampati l'incidenza delle spese fisse sul costo di un singolo foglio tende a ridursi, e il costo unitario tende a coincidere con
i soli costi incorporati per materie prime ed energia (0.05).
Supponiamo che i fogli vengano venduti (tutti) a 0.15 € l'uno, ossia che il ricavo unitario sia Ru = 0.15.
Il ricavo totale sarà Rt =
Il guadagno unitario è
Ecco come sono costruibili grafici simili ai precedenti con R:
source("http://macosa.dima.unige.it/r.R") # apro una nuova finestra in cui faccio i grafici di Ct e Cf BF=3; HF=2.5; Plane(0,1e6, 0,80e3) Ct <- function(n) 30e3 + 0.05*n; Cf <- function(n) 30e3 Cu <- function(n) Ct(n)/n; Ci <- function(n) 0.05 + n*0 graph(Ct,0,1e6, "blue"); graph(Cf,0,1e6, "red") abovex("Ct / blu Cf / rosso"); abovey("n") # # in un'altra faccio quelli di Cu e Ci BF=3; HF=2.5; Plane(0,1e6, 0,0.5) graph(Cu,0,1e6, "blue"); graph(Ci,0,1e6, "red") abovex("Cu / blu Ci / rosso"); abovey("n") # # quelli di Rt e Gt (e quelli tratteggiati di Ct e Cf) # in una finestra un po' pił alta Ru <- function(n) 0.15; Gu <- function(n) Ru(n)-Cu(n) Rt <- function(n) n*Ru(n); Gt <- function(n) Rt(n)-Ct(n) BF=3; HF=3.5; Plane(0,1e6, -25e3,155e3) coldash <- "blue"; graph(Ct,0,1e6, 0); coldash <- "red"; graph(Cf,0,1e6, 0) graph(Rt,0,1e6, "brown"); graph(Gt,0,1e6, "violet") POINT(3e5,0, 1) # ho tracciato dove Gu interseca l'asse orizz. abovex("Rt / marr Gt / viola"); abovey("n") # # quelli di Ru e Gu, assieme a quelli di Cu e Ci tratteggiati BF=3; HF=3.5; Plane(0,1e6, -0.4,0.5) coldash <- "blue"; graph(Cu,0,1e6, 0); coldash <- "red"; graph(Ci,0,1e6, 0) graph(Ru,0,1e6, "brown"); graph(Gu,0,1e6, "violet") POINT(3e5,0, 1) abovex("Ru / marr Gu / viola"); abovey("n")
Ecco come costruirli uguali a quelli sopra riprodotti con comandi un po' più sofisticati:
dev.new(width=3.5,height=3.5) # dimensiono la fimestra Ct <- function(n) 30e3 + 0.05*n; Cf <- function(n) 30e3 + n*0 Cu <- function(n) Ct(n)/n; Ci <- function(n) 0.05 + n*0 # faccio il grafico senza scritte, titoli, ... plot(Ct, xaxt="n",yaxt="n",ylim=c(0,80e3),xlim=c(0,1e6),fg="white",xlab="",ylab="" ) # traccio una griglia da me definita abline(h=seq(0,80e3,10e3),v=seq(0,1e6,1e5),lty=3,col="blue"); abline(h=0,v=0) plot(Ct, xlim=c(0,1e6), add=TRUE, lwd=2, col="blue") plot(Cf, xlim=c(0,1e6), add=TRUE, lwd=2, col="red") # metto delle scritte ai margini dei grafici mtext(c("0","3e4","8e4"),side=2,at=c(0,3e4,8e4),cex=0.8 ) mtext(c("0","5e5","1e6"),side=1,at=c(0,5e5,1e6),cex=0.8 ) mtext("Ct",side=3,at=2e5,cex=0.9,col="blue" ) mtext("Cf",side=3,at=4e5,cex=0.9,col="red" ) mtext("n",side=1,at=1.1e6,cex=0.9,line=-1 ) # dev.new(width=3.5,height=3.5) plot(Cu, xaxt="n",yaxt="n",ylim=c(0,0.5),xlim=c(0,1e6),fg="white",xlab="",ylab="" ) abline(h=seq(0,0.6,0.1),v=seq(0,1e6,1e5),lty=3,col="blue"); abline(h=0,v=0) plot(Cu, xlim=c(0,1e6), add=TRUE, lwd=2, col="blue") plot(Ci, xlim=c(0,1e6), add=TRUE, lwd=2, col="red") mtext(c("0","5e5","1e6"),side=1,at=c(0,5e5,1e6),cex=0.8 ) mtext("n",side=1,at=1.1e6,cex=0.9,line=-1 ) mtext(c("0","0.1","0.5"),side=2,at=c(0,0.1,0.5),cex=0.8 ) mtext("Cu",side=3,at=2e5,cex=0.9,col="blue" ) mtext("Ci",side=3,at=4e5,cex=0.9,col="red" ) # dev.new(width=3.5,height=5) Ru <- function(n) 0.15 + n*0; Gu <- function(n) Ru(n)-Cu(n) Rt <- function(n) n*Ru(n); Gt <- function(n) Rt(n)-Ct(n) # faccio il grafico con col="white" in quanto poi lo disegno sopra tratteggiato plot(Cu, xaxt="n",yaxt="n",ylim=c(-0.4,0.5),xlim=c(0,1e6),fg="white",xlab="",ylab="",lty=2,col="white") abline(h=seq(-0.5,0.6,0.1),v=seq(0,1e6,1e5),lty=3,col="blue"); abline(h=0,v=0) plot(Cu, xlim=c(0,1e6), add=TRUE, lwd=2, col="blue", lty=2) plot(Ci, xlim=c(0,1e6), add=TRUE, lwd=2, col="red", lty=2) mtext(c("0","3e5","5e5","1e6"),side=1,at=c(0,3e5,5e5,1e6),cex=0.8 ) mtext("n",side=3,at=1.1e6,cex=0.9,line=-9 ) mtext(c("0","0.1","0.5"),side=2,at=c(0,0.1,0.5),cex=0.8 ) mtext("Cu",side=3,at=2e5,cex=0.9,col="blue" ) mtext("Ci",side=3,at=4e5,cex=0.9,col="red" ) plot(Ru, xlim=c(0,1e6), add=TRUE, lwd=2, col="brown") plot(Gu, xlim=c(0,1e6), add=TRUE, lwd=2, col="violet") points(3e5,0) mtext("Ru",side=3,at=6e5,cex=0.9,col="brown" ) mtext("Gu",side=3,at=8e5,cex=0.9,col="violet" ) # dev.new(width=3.5,height=5) plot(Ct, xaxt="n",yaxt="n",ylim=c(-25e3,155e3),xlim=c(0,1e6),fg="white",xlab="",ylab="",col="white") abline(h=seq(-30e3,160e3,10e3),v=seq(0,1e6,1e5),lty=3,col="blue"); abline(h=0,v=0) plot(Ct, xlim=c(0,1e6), add=TRUE, lwd=2, col="blue", lty=2) plot(Cf, xlim=c(0,1e6), add=TRUE, lwd=2, col="red", lty=2) mtext(c("0","5e4","1e5","1.5e5","-3e4"),side=2,at=c(0,5e4,1e5,1.5e5,-3e4),cex=0.8 ) mtext(c("0","3e5","5e5","1e6"),side=1,at=c(0,3e5,5e5,1e6),cex=0.8 ) mtext("Ct",side=3,at=2e5,cex=0.9,col="blue" ) mtext("Cf",side=3,at=4e5,cex=0.9,col="red" ) mtext("n",side=1,at=1.1e6,cex=0.9,line=-3 ) plot(Rt, xlim=c(0,1e6), add=TRUE, lwd=2, col="brown") plot(Gt, xlim=c(0,1e6), add=TRUE, lwd=2, col="violet") points(3e5,0) mtext("Rt",side=3,at=6e5,cex=0.9,col="brown" ) mtext("Gt",side=3,at=8e5,cex=0.9,col="violet" )