Side 1 av 1

numerisk derivasjon

Lagt inn: 04/11-2003 21:21
av Shira
Dette er egentlig en programeringsoppgave i java, men jeg bør jo finne ut litt om oppgaven først, jeg har lett i lærebøkene mine, men der står det så kortfattet at jeg ikke skjønner mere enn jeg gjorde fra før. Oppgaven lyder som følger:

Oppgaven går ut på å lage en objektklasse som utfører numerisk derivasjon og numerisk løsning for en funksjon
på formen f(x) = ax2 + bx + c, v.h.a. Newtons metode.

Siden jeg ikke har snøring på hva dette vil si, spør jeg med et lite håp om få greie på det her, og kanskje gi meg et eksempel på numerisk derivasjon og løsning og Newtons metode? om det er noen her som skulle ha litt peiling... :?: :?

Lagt inn: 04/11-2003 21:23
av sparks
har ikke drevet med OO på en stund.. Heller ikke med slike oppgaver..

Lagt inn: 04/11-2003 22:41
av PeerGynt
Jeg gå ut ifra at du ikke har problemer med å lage en objektklasse i java, men jeg er ikke sikker på Newtons metode for derivering av en funksjon går ut på. Er du sikker på at det ikke er integrasjon? Oppgaven er videre uklar mht hva som menes med "numerisk loesning". Er det f(x) = 0 vi er ute etter?

Dette var forvirrende!

Lagt inn: 05/11-2003 14:09
av Shira
neida, det er de matematiske utrykkene jeg prøver å finne ut her og hva de går ut på. Jeg har også fått opplyst følgende (tenkte det ikke var nødvendig):

DELTA_X
Konstant som benyttes i forbindelse med numerisk derivasjon. Typisk verdi er 0,0001

a
Koeffisienten a i ligningen

b
Koeffisienten b i ligningen

c
Koeffisienten c i ligningen

double getZeroValue

(double start_x)
Metode som finner x-verdi der f(x) = 0 basert på Newtons metode. start_x angir x-verdi vi starter iterasjonen med.

getFunctionValue
(double x)
Metode som finner verdien av f(x) for den verdien x.

public double getDerivedValue
(double x)
Metode som v.h.a. numerisk derivasjon finner den deriverte for f(x) i x.

NewtonsMethod

(int ai, int bi, int ci)
Konstruktørmetode der vi tilordner verdier til de tre koeffisientene a, b og c.

I BlueJ lager du et objekt av klassen NewtonsMethod. Bruk følgende verdier for koeffisientene: a=2, b=5, c=-5. Prøv å starte med verdiene –10 og +10 for x, og sjekk at du får tak i begge nullpunktene. Eksprimenter også med litt større og litt mindre verdier av DELTA_X. Sjekk at eksplisitt løsning av ligningen gir samme resultat.

Dersom du får god tid kan du jo lage en ekstra metode som tegner grafen til funksjonen for x-verdier i intervallet –4 til +2.



IKKE bry deg om det som har med programmet å gjøre etc, det er helt greit, det er å forstå det mattematiske i denne oppgaven jeg gjerne vil vite.

Lagt inn: 05/11-2003 22:25
av administrator
Hei!
Newtons metode kan brukes til så mangt. Vi har ikke noe stoff om den her på sidene (foreløpig??!) men jeg tror du finner det du trenger her:

http://www.google.com/search?num=100&hl ... od&spell=1

MVH
Kenneth

Lagt inn: 08/11-2003 00:54
av dag
Jeg kan ikke java, men du forstår kanskje litt C? ;-)
Her et et eksempel på numerisk derivasjon av ax^2 + bx + c i C:

Programmet vil avslutte med å gi den numeriske løsningen av f'(x) ved x = 4.

#include <stdio.h>

#define DELTA_X 0.0001
/* Jo lavere DELTA_X er, dess bedre vil resultatet bli */

int main(void) {
int a, b, c;
int x;
float nderiv;

/* f(x) = 2x^2 + 5x - 5, x = 4 */
a = 2;
b = 5;
c = -5;
x = 4;

/* Kalkulere f'(4) ved å bruke formelen f'(x) = (f(x+delta x)-f(x))/delta x*/
nderiv = ((a*((x+DELTA_X)*(x+DELTA_X))+b*(x+DELTA_X)+c)-(a*x*x+b*x+c))/DELTA_X;
printf("f'(%d) = %f\n", x, nderiv);

return 0;
}

newtons metode

Lagt inn: 26/11-2003 13:04
av 01
Newtons metode handler ikke om aa derivere f(x), men aa loese ligningen f(x)=0. Det er en algoritme som gir en vilkaarlig noeyaktig loesning.
Hvis det kan vaere til noe hjelp, saa gjoer man som foelger:
1. Finner ligningen til tangenten til kurven i et gitt punkt(y=f'(a)(x-a)+f(a), hvor a er x-verdien til punktet.
2. Denne tangenten krysser x-aksen i punktet med x-verdi b.
3. Gjoer akkurat som i 1. bare med b i stedenfor a.

x-verdiene du faar vil etterhvert naerme seg loesningen paa f(x)=0.
Det finnes enklere algoritmer for aa loese f(x)=0 enn Newtons, men den er nok den mest effektive.

Lagt inn: 27/11-2003 19:37
av Shira
takker ;) tror jeg har skjønt det nå :D