ich habe zwei Vektoren (1x61), der eine gibt das tatsächliche Rentenalter für jedes Jahr an, der andere enhält die Zielwerte (nach gesetzt. Statusquo) dieses Rentenalters für jedes Jahr.
Das tatsächliche Rentenalter errechnet sich für jedes Jahr t durch:
Summe aus (a*(Erwerbsquote in t der a-1-Jährigen - Erwerbsquote in t der a-Jährigen)) geteilt durch Erwerbsquote der 40-Jährigen in t
a=Alter=41,...,75
Ich muss nun durch eine Iteration herausfinden, wie sich die altersspezifischen Erwerbsquoten verändern müssen, damit für jedes Jahr das tatsächliche Rentenalter = dem entsprechenden Zielwert entspricht.
Ich würde das mit einer while-Bedingung machen, habe aber einfach keine Ahnung wie...
Matlab soll also immer checken ob im Jahr t das tatsächliche Rentenalter < als der Zielwert,
wenn ja, soll der die altersspezifischen Erwerbsquoten um einen minimalen Faktor erhöhen, dann erneut das tatsächliche Renteneintrittsalter berechnen und wieder schauen ob dieses nun immer noch < als der Zielwert.
Wenn dem so ist, müssen die Erwerbsquoten erneut erhöht werden etc...
Sobald das tatsächliche Renteneintrittsalter dem Zielwert entspricht, soll in die nächste Spalte (also ins nächste Jahr) gesprungen werden und das ganze Spiel beginnt wieder von vorne.
for column=1:T
for row=1:r
r67_rentenalter(row+1,column)=((EQ4075fem(row,column)-EQ4075fem(row+1,column)).*a(row+1,1))./EQ4075fem(1,column);
r67_sumrentenalter=sum(r67_rentenalter);
whileabs(gesetzl_rentenalter(1,column)-r67_sumrentenalter(1,column))>0
r67_EQ4075fem(row,column)=EQ4075fem(row,column).*(1+x);
r67_rentenalter(row+1,column)=((r67_EQ4075fem(row,column)-r67_EQ4075fem(row+1,column)).*a(row+1,1))./EQ4075fem(1,column);
x=x+0.00001;
if gesetzl_rentenalter(1,column)-r67_sumrentenalter(1,column) == 0 break end end end end
der Code ist nicht gerade leicht zu verstehen, weil er
1. nicht dokumentiert ist
2. viel for / while / if verwendet, was vermutlich nicht alles notwendig ist
3. man keine Daten hat, um das nachzuvollziehen
Vor allem aber:
Zitat:
funktioniert aber nicht.
Schreib doch bitte hin, was nicht funktioniert.
Wenn du eine Fehlermeldung bekommst, dann weist das ja schon genau auf das Problem hin, ist also eine wichtige Information.
Wenn der Code durchläuft und nicht sinnvolle Ergebnisse produziert, dann weiß keiner besser als du, warum diese Ergebnisse nicht sinnvoll sind. Teile uns das also bitte mit.
Ich kann nicht garantieren, dass man dir helfen kann, wenn du diese Infos zur Verfügung stellst. Es wird damit aber deutlich eher machbar.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Einstellungen und Berechtigungen
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.