• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

onnauwkeurigheid bij determinanten

Status
Niet open voor verdere reacties.

sylvester-ponte

Verenigingslid
Lid geworden
19 apr 2007
Berichten
6.541
als ik zelf een determinant van een matrix bereken komt er soms een iets ander getal uit dan als excel het uitrekent via Determinant()

zie gele cellen er zo 0 uit moeten komen.
ik gebruik determinanten om vergelijkingen op te lossen bvb 3 vergelijkingen met 3 onbekenden.
als de hoofddeterminant 0 is mag er niet door gedeeld worden.
maar als excel door onbegrijpelijke en onnodige onnauwkeurigheid van een 0 determinant geen 0 maakt,
dan krijg ik soms uitkomsten die fout zijn.
weet iemand of dat door foute instellingen komt?
als ik zelf een udfje maak om determinanten te berekenen komt er wel de goede waarde uit.
 

Bijlagen

  • test determinant sp.xlsm
    11 KB · Weergaven: 19
Laatst bewerkt:
alphamax, bedankt voor je reactie , in mijn voorbeeld werk ik met hele getallen , kun je dan toch afwijkingen krijgen?
het is toch alleen vermenigvuldigen, optellen en aftrekken.
als in de berekening van excel bvb ( -1) ^ n gebruikt wordt ipv even en oneven dan zou dat het verklaren.
 
Laatst bewerkt:
Geen idee.

Gebruik je "cramer's rule" om de vergelijkingen op te lossen?
 
Laatst bewerkt:
ja, maar dan met een udf die dat doet voor elke n vergelijkingen met n onbekenden
de hoofd determinant D mag dan geen 0 zijn (dat wordt afgevangen in de udf)
en met excel gebeurt het dat soms dat D net geen 0 is ipv 0
dat levert fouten op
 
Laatst bewerkt:
Ik heb je andere draadje gevolgd.
Kan je een uitgekleed voorbeeldje geven.
Misschien dat het op een andere manier met excel matrix formules wel is op te lossen.
Er zijn andere methodes dan cramers rule.
 
Bij deze een voorbeeldje met data uit je andere draadje.
Ik gebruik niet cramer's rule maar een combinatie van inversematrix en productmatrix.
 

Bijlagen

  • helpmij sylvester-ponte cramers rule inversematrix productmatrix.xlsx
    10,3 KB · Weergaven: 8
mijn "cramers rule" ziet er zo uit:
 

Bijlagen

  • test determinant sp 4.xlsm
    21 KB · Weergaven: 12
kijk eens wat er gebeurt als je deze waarden invult: die 0 moet echt afgevangen worden anders krijg je onzinnige antwoorden
 

Bijlagen

  • helpmij sylvester-ponte cramers rule inversematrix productmatrix 2.xlsx
    13,8 KB · Weergaven: 12
ja, en als excel een 0 determinant af en toe niet 0 maakt moet je iets verzinnen. bvb if abs(det)< 0,000000001 then behandel hem als 0.
dat houdt in dat soms wel bedoelde waarden weer niet gevonden worden.
 
Hier hetzelfde probleem maar geen oplossing, zie https://www.mrexcel.com/board/threads/problem-with-mdeterm.811735/

Het afrondingsprobleem is meer mensen opgevallen maar nog niet door microsoft opgelost.
Vandaar dat er oplossingen door derden gemaakt zijn.

Er schijnt een add-in Matrix.xla(m) te zijn met de functie MDet/M_Det die deze problemen niet heeft.
Deze functie heeft zelfs een interger parameter wanneer de matrix alleen maar intergers bevat.
Die kan je hier downloaden, zie https://learn.bowdoin.edu/excellaneous/#downloads
Hier zie je de handleiding, zie https://learn.bowdoin.edu/excellaneous/SampleSections3.pdf
Hier zie je de broncode, zie https://agecon2.tamu.edu/people/faculty/woodward-richard/642/Programs/MATRIX.XLA.txt
 
Laatst bewerkt:
alphamax, heel veel dank voor je bijdragen.
je schrijft:
Deze functie heeft zelfs een interger parameter wanneer de matrix alleen maar intergers bevat.
mijn udfje doet het goed met alle getallen die van zichzelf geen afronding zijn. dus ook met niet integer getallen.

een determinant uitrekenen kan met alleen vermenigvuldigen optellen en aftrekken.
dan krijg je geen afrondings problemen en is een 0 determinant ook echt 0. daar gaat het om. dan mag je er niet door delen.
sommige methodes (onder andere die van excel) gebruiken andere bewerkingen. dan kan het fout gaan.
andere determinanten dan 0 determinanten mogen best een afrondings foutje hebben.
ik gebruik dus maar mijn eigen udfje om determinanten te berekenen. (die gebruikt alleen vermenigvuldigen optellen en aftrekken)
 
Laatst bewerkt:
Het is bekend dat het algoritme van microsoft om de determinant te berekenen soms niet betrouwbaar is.
Als jouw udf voldoet, dan is het goed.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan