BreakEven Rechnung

Soloeco

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

Java:
        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:
Java:
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
 

Soloeco

Aktives Mitglied
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

Top Contributor
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

Aktives Mitglied
Also ich habe jetzt folgendes:
Java:
double  y = Math.log(invest /((preis - kosten) * absatz)) / Math.log(1 + steigerung / 100);
Als Ergebnis bekomme ich dann irgendwas über 2 Milliarden :/
 
X

Xyz1

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

Meniskusschaden

Top Contributor
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

Aktives Mitglied
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? :D
 

mrBrown

Super-Moderator
Mitarbeiter
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? :D
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

Top Contributor
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

Aktives Mitglied
@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?
 

Soloeco

Aktives Mitglied
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.
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

Super-Moderator
Mitarbeiter
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?
 
X

Xyz1

Gast
Bin wieder zurück,
Java:
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 /* ??? */;
    }
}

Code:
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.
 
Zuletzt bearbeitet von einem Moderator:

Meniskusschaden

Top Contributor
@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.
 

JStein52

Top Contributor
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

Super-Moderator
Mitarbeiter
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

Aktives Mitglied
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?
 
X

Xyz1

Gast
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

Aktives Mitglied
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?
 
X

Xyz1

Gast
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...
 

Ähnliche Java Themen

Neue Themen


Oben