Pagina 1 van 1

Computer Algebra

Geplaatst: 28 okt 2009, 18:40
door magicsander
Je hebt het vast al eens gezien, een computer die een vergelijking kan oplossen, of zelfs kan integreren. WolframAlpha en Matlab zijn voorbeelden. Wat ik me nou afvroeg is hoe ze dat hebben geprogrammeerd en hoe de computer een probleem kan oplossen.
Ik probeer het ook zelf na te doen en ik ben een programma aan het schrijven. Het probleem is echter dat het erg ingewikkeld is. Ik laat mijn programma een (lineare) vergelijking nu oplossen zoals een mens dat zou doen, aleen dat lijkt heel erg Inefficiƫnt.
Dus hebben jullie enig idee?

Re: Computer Algebra

Geplaatst: 29 okt 2009, 10:28
door arie
Zo'n programma schrijven lijkt me een behoorlijk grote klus.
Je programma moet ten eerste de invoer kunnen interpreteren en vervolgens de oplossing van het probleem zien te vinden, zo die oplossing al bestaat.

Ook de bestaande programma's kunnen nog steeds niet alles oplossen.
Kijk voor symbolische integratie bijvoorbeeld eens naar http://en.wikipedia.org/wiki/Risch_algorithm.
Als je de daar gegeven voorbeeldfunctie in Wolfram Alpha stopt (copy/paste):
integral((x^2+2x+1+(3x+1)*sqrt(x+ln(x)))/(x*sqrt(x+ln(x))*(x+sqrt(x+ln(x)))))dx
kan Wolfram de primitieve niet vinden, maar dit programma kan wel de afgeleide vinden van de primitieve, voer maar in (copy/paste):
d(2*sqrt(x+ln(x))+2*ln(x+sqrt(x+ln(x))))/dx

Als je al deze problemen hebt overwonnen, lijkt het me ook wel handig dat je als volgende stap een probleemvertaler maakt die Nederlandse teksten kan lezen. Dan kan je programma tenminste ook je huiswerk maken. ;-)

Re: Computer Algebra

Geplaatst: 29 okt 2009, 21:39
door magicsander
Ik heb al scripts geschreven voor herleiden en uitdrukken in factoren, alleen nog maar linear. Ik ben nu bezig met de vergelijkingen. Ik moet het invoer-systeem ook verbeteren, want nu moet ik zelf aangeven wat de coefficenten zijn en wat de variabelen zijn.
Voorbeeld:
voer in:factor_terms(11,x,55,y)
en je krijgt:11(1x+5y)