mboost-dp1
c++ formel
- Forside
- ⟨
- Forum
- ⟨
- Programmering
Hej mennesker
Jeg har en en formel som skal bruges i c++. Det er denne.
Xn+1=Xn-((f(xn))/(f '(xn)))
problemet er bare den skal lave det mange gange med nyt input altså det som den udregnede forige gang
Hvordan kan jeg gøre dette? Bare lidt kode ville hjælpe mig med at komme igang.
Jeg har en en formel som skal bruges i c++. Det er denne.
Xn+1=Xn-((f(xn))/(f '(xn)))
problemet er bare den skal lave det mange gange med nyt input altså det som den udregnede forige gang
Hvordan kan jeg gøre dette? Bare lidt kode ville hjælpe mig med at komme igang.
Din ligning ser mærkelig ud ((dobbelt parentens, wtf)). Er det sådan her den skal forstås? http://mathbin.net/56392
#9
haha, det havde jeg ikke set :)
Der er nogle problemer ved at gøre det på den måde. Man bruger jo floating point tal, der har forskellig præcision alt efter om man er tæt på nul eller langt væk*. Så vidt jeg husker, så lærte jeg at man skulle vente indtil man er inde i en cykel.
haha, det havde jeg ikke set :)
Der er nogle problemer ved at gøre det på den måde. Man bruger jo floating point tal, der har forskellig præcision alt efter om man er tæt på nul eller langt væk*. Så vidt jeg husker, så lærte jeg at man skulle vente indtil man er inde i en cykel.
double t_res = STARTVAL;
double h_res = STARTVAL;
double t_oldval, h_oldval;
/* Evt. kan man bruge følgende således:
* t_res = next(t_res); */
#define next(r) ((r)-f(r)/fderiv(r))
i = 1;
do {
if (i%2==0) {
i++;
t_oldval = t_res;
t_res = t_res - f(t_res)/fderiv(t_res);
}
h_oldval = h_res;
h_res = h_res - f(h_res)/fderiv(h_res);
} while (h_res != t_res);
Jeg ved ikke om det er fornuftigt...
algoritmen til at finde cyklen:
http://en.wikipedia.org/wiki/Cycle_detection#Torto...
meh, jeg bruger slet ikke oldval...
#16
Jeg burde tænke mig lidt om :P
Jeg burde tænke mig lidt om :P
double t_res = STARTVAL;
double h_res = STARTVAL;
/* Evt. kan man bruge følgende således:
* t_res = next(t_res); */
#define next(r) ((r)-f(r)/fderiv(r))
i = 1;
do {
if (i%2==0) {
t_res = next(t_res);
}
h_res = next(h_res);
i++;
} while (h_res != t_res);
#undef next
Gå til top
Opret dig som bruger i dag
Det er gratis, og du binder dig ikke til noget.
Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.