# BreakEven Rechnung



## Soloeco (8. Nov 2016)

Hey,
ich habe eine Aufgabe zu einem Autokonzern. Und zwar habe ich dazu folgende Variablen:


```
invest = 100000000;
        kosten = 23500;
        preis = 24950;
        absatz = 10000;
        steigerung = 5;
```

invest ist dabei der betrag den man zunächst in das Unternehmen investiert, kosten sind die Produktionskosten pro Auto, preis ist der Kaufpreis eines Autos, absatz ist die Anzahl wie viele in einem Jahr verkauft werden und die steigerung besagt, dass der Absatz mit jedem Folgejahr um 5% steigen soll.
Meine Aufgabe ist es nun die Anzahl der Jahre zu errechenen, wann der BreakEven erreicht ist und mir geht es aktuell nicht um den Code an sich, sondern nur um die Rechnung die dahinter steckt.
Bisher habe ich das hier:

```
double x = invest / (double)((preis - kosten) * (absatz);
```

Allerdings ist da nun noch nicht die jährliche Steigerung des Absatzes drin. Wie bekomme ich das hin? Mit der Zinseszinsrechnung habe ich auch schon ein wenig probiert, kam jedoch nichts brauchbares bei raus.

Würde mich freuen wenn ihr mir helfen könnt!

Freundliche Grüße
Soloeco


----------



## Cromewell (8. Nov 2016)

10000*1.05^y
y steht für die Anzahl der Jahre.


----------



## Soloeco (8. Nov 2016)

Inwiefern muss das dann da rein? Ich möchte ja die Anzahl der Jahre als Ergebnis haben, muss ich das dann nach y umstellen? Was du mit der 1.05 meinst verstehe ich wohl.


----------



## Cromewell (8. Nov 2016)

Ja. Du willst ja wissen, wann es gleich der Investition ist: invest = gewinn * absatz * (1+steigerung/100)^y
Nun stellst du nach y um, damit du die Anzahl der jahre hast - heraus kommt Folgendes: y = lg(invest/(gewinn*absatz))/lg(1+steigerung/100)


----------



## Soloeco (8. Nov 2016)

Also ich habe jetzt folgendes:

```
double  y = Math.log(invest /((preis - kosten) * absatz)) / Math.log(1 + steigerung / 100);
```
Als Ergebnis bekomme ich dann irgendwas über 2 Milliarden :/


----------



## Xyz1 (9. Nov 2016)

Moin, ich kümmere mich später um diese Aufgabe, mussten wir in BWL auch berechnen (auf Papier)...


----------



## Meniskusschaden (9. Nov 2016)

`Math.log()`berechnet den natürlichen Logarithmus. Für die Basis zehn ist `Math.log10()`gedacht. Ausserdem berücksichtigt die aktuelle Formel meines Erachtens nicht den kumulierten Absatz aller Jahre, sondern nur den Absatz des Jahres y.


----------



## Soloeco (9. Nov 2016)

Guten Morgen,
Also ich habe jetzt Math.log10() genutzt und selbst wenn ich den kumulierten Absatz nicht in meiner Rechnung habe, müsste ja ein vernünftiges Ergebnis heraus kommen, doch aktuell ist das Ergebnis "Infinity".
Und nochmal zum kumulierten Absatz .. dafür teile ich doch mit Math.log10(1+Steigerung/100). Damit müsste ich den doch haben, oder habe ich da was falsch verstanden?


----------



## mrBrown (9. Nov 2016)

Soloeco hat gesagt.:


> Guten Morgen,
> Also ich habe jetzt Math.log10() genutzt und selbst wenn ich den kumulierten Absatz nicht in meiner Rechnung habe, müsste ja ein vernünftiges Ergebnis heraus kommen, doch aktuell ist das Ergebnis "Infinity".
> Und nochmal zum kumulierten Absatz .. dafür teile ich doch mit Math.log10(1+Steigerung/100). Damit müsste ich den doch haben, oder habe ich da was falsch verstanden?


Aktuell berechnest du, in welchem Jahr genug Autos verkauft werden, um innerhalb dieses Jahres das Investment wieder reinzuholen 
Da müsste in der Ursprungsformel eher sowas wie `sum_{n=0}^y = absatz * 1.05^n` hin, anstatt nur `absatz * 1.05^n`


----------



## JStein52 (9. Nov 2016)

1 + steigerung / 100 ...
Kann es sein dass die beteiligten Operanden da alle vom Typ int sind ? Dann wäre das Ergebnis 1 und log(1) = 0, d.h. du dividierst durch 0 ---> Infinity


----------



## Soloeco (9. Nov 2016)

@JStein52  Ja, das hätte ich mir ja denken können, die sind alle vom Typ int. Dann einfach in der Rechnung umcasten?

@mrBrown Kannst du das etwas genauer erläutern was deine Idee dahinter ist? Also wie du darauf gekommen bist?


----------



## mrBrown (9. Nov 2016)

durch `100.0` teilen würde schon reichen.

Behebt aber nicht das Problem der falschen Formel


----------



## JStein52 (9. Nov 2016)

Soloeco hat gesagt.:


> Dann einfach in der Rechnung umcasten?


Genau. Die Rechnung selber habe ich mir jetzt nicht sooo genau angeschaut, wird schon stimmen


----------



## Soloeco (9. Nov 2016)

Also das mit den Datentypen habe ich jetzt geklärt und bekomme auch nicht mehr infinity heraus, doch es passt noch immer nicht.

@mrBrown Kannst du mir das hier einmal näher erklären? Ich kann damit gerade nicht so viel anfangen und stehe auf dem Schlauch.


mrBrown hat gesagt.:


> Da müsste in der Ursprungsformel eher sowas wie sum_{n=0}^y = absatz * 1.05^n hin, anstatt nur absatz * 1.05^n


----------



## mrBrown (9. Nov 2016)

Das `absatz * (1+steigerung/100)^y` (was du umgeformt in deiner Formel benutzt) errechnet nur den Absatz für ein Jahr aus, du braucht aber den aufsummierten Absatz aller Jahre, also Summe von n=0 bis y von `(absatz * (1+steigerung/100)^n)`

Sollt ihr das in Java lösen?


----------



## Xyz1 (9. Nov 2016)

Bin wieder zurück,

```
class NichtWichtig {
    public static void main(String[] args) {
        int invest = 100_000_000,
            kosten = 23_500,
            preis = 24_950,
            absatz = 10_000,
            steigerung = 5;

        int sum = 0;

        for (int i = 0; i < 10; i++) {
            int profit = (preis - kosten) * absatz;
            sum += profit;
            System.out.println("i      = " + i);
            System.out.println("absatz =" + String.format("% ,12d", absatz));
            System.out.println("profit =" + String.format("% ,12d", profit));
            System.out.println("sum    =" + String.format("% ,12d", sum));
            System.out.println("---");
            if (sum >= invest) {
                System.out.println("i      = " + i);
                return;
            }
            absatz *= 1.0 + steigerung / 100.0;
        }

        double bep = 0 /* ??? */;
    }
}
```


```
i      = 0
absatz =      10.000
profit =  14.500.000
sum    =  14.500.000
---
i      = 1
absatz =      10.500
profit =  15.225.000
sum    =  29.725.000
---
i      = 2
absatz =      11.025
profit =  15.986.250
sum    =  45.711.250
---
i      = 3
absatz =      11.576
profit =  16.785.200
sum    =  62.496.450
---
i      = 4
absatz =      12.154
profit =  17.623.300
sum    =  80.119.750
---
i      = 5
absatz =      12.761
profit =  18.503.450
sum    =  98.623.200
---
i      = 6
absatz =      13.399
profit =  19.428.550
sum    = 118.051.750
---
i      = 6
```

spricht: Zwischen 5 und 6 Jahre.

WAS KOMMT AN DIE STELLE MIT DEN DREI ???
?

Könntet ihr mir das bitte sagen? Ich bin zu faul, jetzt das halbe Buch über Absatz durchzulesen.

Bearbeitung: Sorry, i = 1 !!!! (Index fängt bei 1 an), zwischen 6 und 7 Jahre.


----------



## Meniskusschaden (9. Nov 2016)

Soloeco hat gesagt.:


> @mrBrown Kannst du mir das hier einmal näher erklären? Ich kann damit gerade nicht so viel anfangen und stehe auf dem Schlauch.


Ich glaube, dein Gedankenfehler ist, dass du es zu sehr mit der Zinseszinsberechnung vergleichst. Wenn du beispielsweise auf 10000 Euro 5% Zinsen bekommst, hast du nach einem Jahr 10500 Euro. Davon sind 500 Euro die Zinsen und die 10000 Euro sind dieselben, wie aus dem Vorjahr. Im zweiten Jahr werden also 10500 Euro verzinst.
Beim Autohersteller werden im zweiten Jahr aber nicht dieselben 10000 Autos ein zweites Mal verkauft, sondern 10500 neue Autos. Insgesamt wurden also 20500 Autos verkauft.


----------



## Soloeco (9. Nov 2016)

Ja wir sollen das in Java lösen.
Ich versuche mich erstmal weiter daran, danke schon einmal!


----------



## Xyz1 (9. Nov 2016)

Soloeco hat gesagt.:


> und die steigerung besagt, dass der Absatz mit jedem Folgejahr um 5% steigen soll.



WAS HABE ICH FALSCH VERSTANDEN???? Der Absatz steigt, bedeutet doch, "immer 5% mehr", oder?


----------



## Soloeco (9. Nov 2016)

Ja richtig, so wie ich es bereits geschrieben habe. Der Absatz, also die 10000 steigen mit jedem Folgejahr um 5%.


----------



## Meniskusschaden (9. Nov 2016)

DerWissende hat gesagt.:


> WAS HABE ICH FALSCH VERSTANDEN???? Der Absatz steigt, bedeutet doch, "immer 5% mehr", oder?


Beziehst du dich auf mein Posting? Das war an den TE gerichtet. Die Steigerungsrate interpretiere ich genauso wie du.


----------



## Xyz1 (9. Nov 2016)

Meniskusschaden hat gesagt.:


> Beziehst du dich auf mein Posting? Das war an den TE gerichtet. Die Steigerungsrate interpretiere ich genauso wie du.


Achso...
Trotzdem weiß ich nicht genau, wie von der Summenformel, auf einen Blick, zu der einzeiligen Formel... Später wolframalpha befragen.


----------



## JStein52 (9. Nov 2016)

Kann ir mal einer erklären warum das nicht mit der Zinseszinsformel gehen soll ? Die Frage ist doch genau die:

Ich habe ein bestimmtes "Kapital" nämlich einen bestimmten Gewinn (zu errechnen aus der Anzahl verkaufter Autos und der Differenz zwischen Herstellungs- und Verkaufspreis. Und der steigt pro Jahr um 5 %. Und nun will ich ausrechnen wann ich ein bestimmtes Endkapital erreicht habe.


----------



## mrBrown (9. Nov 2016)

JStein52 hat gesagt.:


> Kann ir mal einer erklären warum das nicht mit der Zinseszinsformel gehen soll ? Die Frage ist doch genau die:
> 
> Ich habe ein bestimmtes "Kapital" nämlich einen bestimmten Gewinn (zu errechnen aus der Anzahl verkaufter Autos und der Differenz zwischen Herstellungs- und Verkaufspreis. Und der steigt pro Jahr um 5 %. Und nun will ich ausrechnen wann ich ein bestimmtes Endkapital erreicht habe.



Mit der Zinsformel berechnet man die Verkäufe in Jahr N, es werden aber die aller Jahre zwischen 0 und N benötigt.
Bei der Zinsformel kommt ja kein neues Kapital dazu, bei den Autos werden aber jedes Jahr neue verkauft


----------



## Soloeco (9. Nov 2016)

Das Problem bei meiner Formel ist ja eigentlich, dass ich die Jahre zu errechnen versuche, die man braucht um invest wieder heraus zu haben, doch um diese Jahre berechnen zu können brauche ich in der Formel ja eigentlich bereits die Anzahl der Jahre um mit dem absatz inklusive der Steigerung rechnen zu können oder irre ich mich da?


----------



## Xyz1 (9. Nov 2016)

Soloeco hat gesagt.:


> Das Problem bei meiner Formel ist ja eigentlich, dass ich die Jahre zu errechnen versuche, die man braucht um invest wieder heraus zu haben, doch um diese Jahre berechnen zu können brauche ich in der Formel ja eigentlich bereits die Anzahl der Jahre um mit dem absatz inklusive der Steigerung rechnen zu können oder irre ich mich da?


Du irrst, zum Schluss kommt ein log(...) drumherum. 
Hat nicht irgendjemand mal Mathe studiert - und könnte uns da weiterhelfen?
(Ok, ich kenne schon die Antwort  )


----------



## Soloeco (9. Nov 2016)

Okay, jetzt bin ich vollends verwirrt und habe noch immer keine Lösung für meine Aufgabe ..
Also geht das nun, dass man das mit der Zinseszinsrechnung angeht? Wie müsste da die Formel dann aussehen?
Oder wenn es nicht geht, wie gehe ich es dann an?


----------



## Xyz1 (9. Nov 2016)

wolframalpha sagt:
x = 5.07224 bzw. x = 6.07224
https://www.wolframalpha.com/input/?i=(sum+(24950+-+23500)+*+(10000*(1.05)^y),+y=0+to+x)+=+100000000
er verrät mir nur nicht, wie es zu diesem Wert kommt


----------



## Xyz1 (9. Nov 2016)

wolframalpha schreibt es um:
e^(y*x)=z
y*x=log(z)
x=log(z)/y

x ist die Anzahl der Jahre, z und y ist irgendetwas ganz Verrücktes 
vereinfacht gesagt, brauchst du nur einmal "natürlichen" Logarithmus und eine Division...


----------

