Come posso trovare una semplice equazione del rendimento decrescente?


25

Ci sono formule là fuori per un'equazione di ritorno decrescente; tuttavia, quelli di solito coinvolgono esponenziali. Quali altri modi ci sono per trovare una simile equazione? Prendiamo ad esempio il seguente caso di test: una fattoria produce 10 alimenti, per ogni 10 fattorie prodotte, il tasso di produzione diminuisce del 5%.


1
Potrebbe esserti utile se ci dicessi perché vuoi evitare esponenziali. In particolare, anche le espressioni della forma x ^ y ( x elevato alla potenza y ) sono fuori (dal momento che i computer di solito calcolano quelle che usano esponenziali, almeno per i non interi y )?
Ilmari Karonen,

7
"Per ogni dieci fattorie prodotte, il tasso di produzione diminuisce del 5%." Questo è essenzialmente esponenziale: y = 0.9 ^ (piano (x / 10)). Come chiede @IlmariKaronen, cosa c'è di sbagliato nell'esponenziale?
wchargin,

1. Difficile da spiegare ai non sviluppatori (e alcuni sviluppatori hanno problemi con esponenziali) 2. Ho l'impressione che sia costoso
Extrakun,

2
non c'è assolutamente nulla di inefficiente nell'uso delle equazioni esponenziali. Penso che ciò a cui stai pensando siano algoritmi in cui il numero di passaggi aumenta in modo esponenziale rispetto alla dimensione dell'input (ad esempio la dimensione di un array che desideri ordinare). Questo è indicato come "O", ad esempio si potrebbe dire che un determinato algoritmo (o funzione) esegue O (n) passaggi per l'esecuzione. Un algoritmo in cui i passi aumentano in modo esponenziale potrebbe essere descritto come prendere, ad esempio, passi O (n quadrati). Questo è totalmente diverso dall'avere una singola equazione che contiene un termine esponenziale.
Max Williams,

1
Penso che Extrakun potrebbe pensare a questo tipo di "costoso:" stackoverflow.com/questions/2940367/… . Ribadire ciò che dicono tutti gli altri: non è costoso. Se non ti senti a tuo agio con gli esponenziali, cerca spiegazioni accessibili (forse betterexplained.com/articles/… ), non evitarli.
kristina,

Risposte:


30

Per formulare un'equazione dei rendimenti decrescenti, penso immediatamente alle frazioni.

Grafico di 1 / F Questo è un grafico di y=1/F

ydiventerà più piccolo quanto Fpiù grande. Questo ti darà un drop-off costante che non raggiunge mai 0. Da questo puoi trasformarlo per ottenere il tipo di curva che desideri. L'uso di numeri> 0 darà sempre un risultato positivo che non è mai 0.

Onestamente, consiglierei di andare a WolframAlpha e inserire alcune equazioni e guardare i grafici che disegna per vedere se fornisce la curva che desideri. A parte questo, leggi le equazioni lineari e quadratiche per essere in grado di capire rapidamente cosa vuoi modificare in una formula. Questo perché la modellazione di grafici tramite equazioni è un po 'un grande argomento, e se potessi spiegarlo qui perfettamente venderei prima quella spiegazione ad alcuni insegnanti di matematica.

Fondamentalmente, per i grafici lineari, ricorda y=mx+c. mè il gradiente e può essere positivo o negativo a seconda di ciò di cui hai bisogno ed cè il punto in cui intercetta il y axis. xè la tua variabile di input ed yè il tuo output.

y = mx + c Questo è un grafico di y=mx+cdove m=1ec=0

Per i grafici quadratici, diventa un po 'più complicato, quindi sarò un po' vago e dovrai leggere tu stesso i dettagli. Khan Academy è davvero una buona risorsa per insegnare questo. È di forma generale y=ax²+bx+c. cè ancora l'intercetta y e puoi modificarla per "sollevare" il grafico. aed bentrambi influenzano la curva in modo simile, ma a diversi gradi.

y = -x² + 2x + 10 Questo è y=-x²+2x+10. Nota il -x², che rende la curva invertita.

Fondamentalmente, gioca con i grafici fino a ottenere quello che vuoi, anche se ti consiglio vivamente di leggerlo di più se vuoi progettare l'esperienza in modo rapido e pulito. Le equazioni di base sono importanti per i giochi e davvero interessanti.

Altre cose da notare sono i grafici esponenziali e logaritmici , cioè i grafici di y=e^xe y=ln(x)per ottenere grafici in rapido aumento e in rapida diminuzione a seconda della trasformazione. Oltre a ciò, i vettori e le trasformazioni sono utili, in quanto descrivono cosa stai facendo il grafico "base".


6
Usi la "teoria dei grafi" un paio di volte nel post; è qualcos'altro del tutto . Penso che ciò che OP sta cercando si avvicini alla modellazione.
Incasso il

1
@ Chaosed0 Hai perfettamente ragione, ho derped. Modificato però, ta :)
Yann

+1, ho giocato diversi giochi in cui l'effetto di alcune statistiche è sostanzialmente 1/x. Ovviamente per tale curva un non vuoi mai xad eguagliare a zero, però!
Brian S,

1
In realtà consiglierei Desmos su WA per la progettazione di funzioni. Le due ragioni principali sono che è in tempo reale e che è manipolabile. Cioè, imposta y = a^xe puoi aggiungere un cursore per agiocare con la funzione. Puoi averne quanti ne desideri. Puoi persino animare i cursori. È abbastanza carino, in realtà. (Equivalente a Mathematica Manipulate.)
wchargin,

1
Graph Toy (che esiste da diversi anni) è uno strumento utile per provare alcune equazioni. Io lo uso per tutto il tempo.
Tigrou,

20

Rendimenti decrescenti = derivato decrescente

  • Dal momento che si desidera comunque ottenere rendimenti anche a livelli più alti, significa che il derivato dovrebbe essere positivo, altrimenti costruire più fattorie ridurrebbe la produzione alimentare (il che potrebbe anche avere senso se si tiene conto della logistica e dei costi di manutenzione)
  • Dovrebbe avvicinarsi allo zero in modo asintotico, se si avvicina a un valore diverso da zero si finirà con un aumento costante per azienda a un certo livello
  • a seconda di quanto velocemente va a zero puoi avere un limite superiore o una funzione illimitata

Quindi cosa devi fare? Scegli una funzione che soddisfi i criteri sopra e integrala.
La scelta più semplice per questo compito è g(t,n) = 1/(t+1)^ndove n=1segna il confine tra funzioni sempre crescenti e limitate.
L'integrale di g da 0 a x è ciò di cui hai bisogno: f(x,n) = ((x+1)**(1-n) - 1)/(1-n)
ecco come appare diverson

inserisci qui la descrizione dell'immagine
E qui è normalizzato allo stesso valore finale

inserisci qui la descrizione dell'immagine
Modificando l'esponente nè possibile regolare facilmente il bilanciamento.
Nota: qui la derivata è la produzione per azienda agricola, mentre l'integrale è la produzione totale per un numero di aziende agricole


5

In generale, inizierà un'equazione lineare y = mx + b, dove si btrova il valore iniziale, ed mxè come si regola il valore iniziale xall'aumentare.

Quindi la prima parte della tua equazione, la b, sarà 10perché vuoi che le fattorie inizino con 10 alimenti.

y = mx + 10

Successivamente, nel tuo caso, vuoi regolare il cibo prodotto da ogni dieci fattorie. Quindi dovrai dividere per dieci per ottenere un'equazione che funzioni per ogni dieci fattorie (supponendo che x / 10restituisca un numero intero, ovvero 13 / 10 = 1:

y = m * (x / 10) + 10.

Quindi, alla fine, dobbiamo capire come vogliamo che il cibo cambi per ogni x / 10fattoria. Nel tuo caso, vuoi che diminuisca di 0,5 (5% di 10), che è lineare. Quindi otteniamo:

y = -0.5 * ( x / 10 ) + 10.

Quindi per la fattoria x = 5, otteniamo 5 / 10 = 0, 0 * -0.5 = 0, 0 + 10 = 10. Per la fattoria x = 11otteniamo 11 / 10 = 1, 1 * -0.5 = -0.5, -0.5 + 10 = 9.5, per la fattoria 23 otterremmo 9.0.

Quindi devi solo calcolare il cibo totale per tutte le aziende agricole.

y = 0
for( x = 0; x < totalFarms; x++ )
{
    y += -5 * ( x / 10 ) + 10;
}

Ma forse tu del 5%, volevi che diminuisse del 5% del valore precedente. Vale a dire, 10, 10 * 0.95 = 9.5, 9.5 * 0.95 = 9.025(in questo caso, l'importo che diminuiamo diventa sempre meno). Quindi, consente di modificare l'equazione. 5%è un aumento di tipo esponenziale e la formula esponenziale è y = b*m^x.

Abbiamo ancora b = 10, e dobbiamo fare la nostra divisione per 10 trucco. Quindi abbiamo y = 10*m^(x/10). mè 0.95, poiché vogliamo prendere ogni volta il 95% del valore. Quindi l'equazione per farm xè y = 10*0.95^(x/10).


4

Farebbe un ritorno lineare decrescente? produzione per azienda agricola = (1 - (0,05 * (f / 10))) * tasso di produzione. Ciò fornisce un picco di produzione totale (tasso * n. Di aziende agricole) a f = 100.


Ehi, grazie, anche se sto cercando principi generali per arrivare all'equazione (Come puoi vedere, la matematica non è il mio punto di forza)
Extrakun,

2

Potresti voler considerare una soluzione algoritmica che corrisponda alla situazione.

Cioè, considera perché ci sono rendimenti decrescenti nella tua situazione di gioco e modella quelli.

Molteplici strutture dello stesso tipo potrebbero avere rendimenti decrescenti è che potrebbero esserci altre risorse o strutture dalle quali dipendono o che comportano strozzature o altre situazioni limitanti, come una rete stradale, lavoratori disponibili o trasporti o acqua dolce o elettricità o altro.

Una fattoria può produrre 10 alimenti al giorno in circostanze ideali, ma richiede anche due ore contadine al giorno. Richiede anche un'acqua fresca per alimento al giorno e il suo pozzo fornisce solo fino a 5 acqua al giorno. Il resto deve essere prelevato da un ruscello o fiume adiacente o portato con mezzi di trasporto. E anche portare il cibo dove deve essere utile può essere un problema. Ecc. Rimuovere alcuni o aggiungere altri a seconda di ciò che si desidera rappresentare, ma questi possono essere motivi molto più interessanti e significativi, che aggiungono interesse e valore agli altri sistemi di gioco, al contrario di una formula matematica artificiale non basata su altri elementi di gioco .


1

Se vuoi che un'equazione generalizzata si scherzi, puoi usare un grafico del coseno: A * cos (Bx + C) + D

Ma modificalo a mezzo periodo, in modo da includere all'inizio l'aumento pseudo esponenziale, quindi un breve periodo di aumenti lineari, fino a un punto di rendimenti infine decrescente. L'unico problema è che sarebbe necessario creare un massimale invalicabile. Quindi dopo un certo numero di fattorie non vedresti alcun aumento.

L'immagine sotto è un grafico degli aumenti di ritmo per 30 minuti di corsa, facendo esattamente lo stesso allenamento in preparazione. Ovviamente non è perfetto, ma potresti riuscire a risolverlo per trovare quello che stai cercando.

Esempio di curva del coseno utilizzata per determinare rendimenti decrescenti

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.