Springen naar inhoud

MathCad


  • Log in om te kunnen reageren

#1


  • Gast

Geplaatst op 30 augustus 2004 - 17:36

Ik gebruik MathCad 2001 professional.
Wanneer ik in de breukvorm de volgende breuk invoer, krijg ik een verkeerde uitkomst.

3/10 - 4/15 =1/33 uitkomst MathCad

Volgens mij moet deze uitkomst 1/30 zijn.

Mijn vraag is, of iemand hier bekend mee is, en weet wat de reden hiervan is.

Dit forum kan gratis blijven vanwege banners als deze. Door te registeren zal de onderstaande banner overigens verdwijnen.

#2


  • Gast

Geplaatst op 13 september 2004 - 13:01

Dit soort fouten in programmatuur wordt ook wel bug genoemd. Indien je een licentie hebt een update vragen.
Belangrijkste les: een computers (+ software) zijn niet zaligmakend. Gezond verstand doet wonderen. :shock:

#3

Elmo

    Elmo


  • >1k berichten
  • 3437 berichten
  • VIP

Geplaatst op 13 september 2004 - 16:09

Ik gebruik MathCad 2001 professional.
Wanneer ik in de breukvorm de volgende breuk invoer, krijg ik een verkeerde uitkomst.

3/10 - 4/15 =1/33 uitkomst MathCad

Volgens mij moet deze uitkomst 1/30 zijn.


Deze uitkomst is inderdaad 1/30 zijn, maar dat terzijde. Weet je zeker dat je het goed invult in MathCad (ik ken het programma niet)? Mathematica doet het wel goed, misschien een mooie reden om te upgraden? :shock:
Never underestimate the predictability of stupidity...

#4


  • Gast

Geplaatst op 10 oktober 2004 - 15:20

Ik heb het net ff gecontrolleerd in Mathcad, als je 3/10 - 4/15 uitrekend, komt er als antwoord 0.033 uit. Wanneer je op de placeholder (zwarte puntje achter het antwoord) 1/30 intikt, zul je zien dat "3/10 - 4/15" precies 1 x 1/30 is. Mathcad heeft het dus wel goed berekend, alleen zie je het aan het antwoord niet duidelijk.

PS. 1/33 is 0.030303...

#5


  • Gast

Geplaatst op 21 oktober 2004 - 20:12

Op dit onderwerp wou ik even inhaken met de volgende vraag:

Het gebeurt wel vaker dat computers fouten maken met berekeningen. Dit schijnt iets te zijn wat ook niet te voorkomen is (er vanuit gaande dat het programme wel goed geschreven is). Ik heb het idee dat het met afrondingen te maken heeft, maar het kan natuurlijk ook iets heel anders zijn. ZOu iemand mij kunen vertelen hoe deze fouten kunnen ontstaan. Ofwel, hoe komt het dat computers deze reken fouten maken

#6


  • Gast

Geplaatst op 21 oktober 2004 - 22:43

Het gebeurt wel vaker dat computers fouten maken met berekeningen. Dit schijnt iets te zijn wat ook niet te voorkomen is (er vanuit gaande dat het programme wel goed geschreven is). Ik heb het idee dat het met afrondingen te maken heeft, maar het kan natuurlijk ook iets heel anders zijn. ZOu iemand mij kunen vertelen hoe deze fouten kunnen ontstaan. Ofwel, hoe komt het dat computers deze reken fouten maken


Een computer kan alleen een getal gebruiken met een eindig aantal cijfers (bijv. 16). Je kunt er wel 10^x achterzetten, maar die beperkte aantal cijfers zorgen voor afrondfouten en afbreekfouten. Dit kan problemen veroorzaken als een probleem slecht geconditioneerd is, wat dit inhoudt kan ik je niet even uitleggen, daar zul je toch een boek voor moeten naslaan. Maar misschien krijg je een idee met het volgende voorbeeld:

f(x)=1/(1-x) - 1/(1+x)
als x naar 0 nadert ontstaan er problemen omdat het rechtergedeelte en linkergedeelte naar dezelfde grootte gaan. Als x nu heel klein is zodat die onder de precisie van het programma ligt (bijv 1e-17) zal de uitkomst nul zijn. Dit is dus een slecht geconditioneerd probleem, want de werkelijke uitkomst is geen nul.
Maar de functie kan herschreven worden:
f(x)=(1+x)/((1-x)*(1+x))-(1-x)/((1+x)*(1-x))=2*x/(x^2+1)
Deze functie is goed geconditioneerd en geeft voor x=1e-17 probleemloos een uitkomst.

Goed en slecht geconditioneerde problemen zijn van groot belang bij matrix-berekeningen die veel voor komen in programma's. Vooral grote en kleine waarden (nul is geen probleem) in een matrix geven vaak slechte resultaten. Dit zijn dus geen programmeerfouten maar de wiskundige gevolgen van de eindige precisie van een computer.





0 gebruiker(s) lezen dit onderwerp

0 leden, 0 bezoekers, 0 anonieme gebruikers

Ook adverteren op onze website? Lees hier meer!

Gesponsorde vacatures

Vacatures