Voor mijn eindwerk ben ik een programma aan het schrijven in Visual C++ om de grafiek van functies te plotten zoals Dérive dat kan. Het programma is bijna af, maar ik zit nog met 1 laatste probleem: (negatieve getallen)^(kommagetallen, breuken of zelfs een hele bewerking)
Ik heb bij de berekening van de macht het grondtal ter beschikking en een al dan niet negatief kommagetal als exponent (30 cijfers na de komma)
Ik heb ondervonden dat dit soms een waarde geeft en soms ongeldig is. Ben ik juist als ik zeg dat dit te maken heeft met het even of oneven zijn van de wortels en/of de machten? Want: (-5)^(0.333333…) = (-5)^1/3 = 3√ (-5) = -1.709975947… en: (-5)^(0.75) = (-5)^2/3 = 4√ (-5)3 geeft ‘No Real Answer’
Ik heb dus een methode nodig om van een kommagetal naar een breuk te raken zonder irrationale breuken hierbij te betrekken en zo te bepalen of ik de macht mag uitrekenen. (denk ik )
Kan iemand mij helpen?
Tom Ve
Overige TSO-BSO - dinsdag 7 januari 2003
Antwoord
Wiskundig gezien: (negatief getal)^(kommagetal) bestaat niet (nooit of te nimmer)!
De = tekens (telkens de eerste van links) in de door jou gegeven voorbeelden: (-5)^(0.333333) = (-5)^1/3 = 3√(-5) = -1.709975947 (-5)^(0.75) = (-5)^2/3 = 4√(-5)3 geeft No Real Answer zijn daar niet op zijn plaats. Immers, 0.3333333 is niet gelijk aan 1/3!
Het is overigens geen wonder dat in het laatste geval 4√(-5)3 volgt: No real answer omdat machtsverheffing VOOR worteltrekking gaat: er staat daar dus, let op de extra haakjes: 4√((-5)3) (een even wortel van een negatief getal)
Om je probleem 'op te lossen' (je noemt het 'van kommagetal naar breuk') zal je, naar ik meen, genoegen moeten nemen met een benadering.
Te berekenen: x^(decimaal_getal) Doe dan iets als (in een of ander taaltje)
en daarna moet je zelf een routine schrijven om x te berekenen met de WORTEL1000000. Maar een en ander is een blijft volgens mij wiskundig gezien onzin, als het gaat om negatieve getallen x.