WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Iteration

 

Findling1050
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 01.10.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.11.2020, 10:59     Titel: Iteration
  Antworten mit Zitat      
Hallo,

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.

Kann mir da jemand helfen?

Liebe Grüße
Private Nachricht senden Benutzer-Profile anzeigen


Findling1050
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 01.10.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.11.2020, 09:22     Titel: Ergänzung
  Antworten mit Zitat      
Hallo,
das habe ich bisher..funktioniert aber nicht.
Aber vielleicht versteht man so mein Problem besser.


Code:

%EQ4075fem=zeros(36,61);                                                                    
r67_EQ4075fem=zeros(36,61);
r67_EQ4075fem(:,:)=EQ4075fem(:,:);
%EQ4075fem(:,:)=proj_fem(26:61,1:61);


r67_rentenalter=zeros(36,61);
a=40:75;
a=a';
r=35;
x=0.00001;

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);
        while abs(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
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.432
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 03.11.2020, 17:38     Titel:
  Antworten mit Zitat      
Hallo,

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 ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

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.