Skip to main content
GameDev.net gamedev.net
🔒 Locked

Software for symbolic differentiation

Started by butterscotch Oct 25, 2005 at 2:12 AM 4 replies 1.1k views
Original Post
butterscotch
butterscotch
Hi Sometime back I wrote a software for the symbolic differentiation of mathematical expressions. You can define new functions of your own, use arbitray constant symbols..in other words I've tried to make it as generalised as one might require and there's no limit to the level of complexity as far as the algorithm is concerned. I dont have much ideas about what to do and what can be done with this peice of code. Neone got suggestions, ideas etc. is utmost welcome. Btw it's written in C. Best regards, Butterscotch
mrbig
mrbig
You can give it to me, so I won't have to waste any more time on math homeworks.
[smile]
Winograd
Winograd
Extend it to matrix equations.


For example general quadratic form:
"q(x) = xtMx - btx + c,
where:
- M is a matrix
- b is a vector

The gradient of q(x) is given by:
(1) dq/dx = (M + Mt)x - b", (by ury - from earlier thread)
ury
ury
Actually, writing something like this in C is very tricky. (Too tricky, if you ask me.)

Since symbolical differentiation is a very important issue for our company, we develop our own package. Mathematica was chosen to be the language due to its strong symbolical capabilities.

The package is freely available at:
http://library.wolfram.com/infocenter/MathSource/5901/
Winograd
Winograd
I guess I can only dream about something similar in Maxima. But perhaps butterschotch could contribute to Maxima development also and do it for me ;)

just kidding..
butterscotch
butterscotch
Quote:
Original post by Winograd
Extend it to matrix equations.

For example general quadratic form:
"q(x) = xtMx - btx + c,
where:
- M is a matrix
- b is a vector

The gradient of q(x) is given by:
(1) dq/dx = (M + Mt)x - b", (by ury - from earlier thread)


Thanks for your suggestions winograd. I would think of extending it, but...I still donno how to make the most out of it.


Quote:
Original post by ury
Actually, writing something like this in C is very tricky. (Too tricky, if you ask me.)

Since symbolical differentiation is a very important issue for our company, we develop our own package. Mathematica was chosen to be the language due to its strong symbolical capabilities.

The package is freely available at:
http://library.wolfram.com/infocenter/MathSource/5901/



I wrote it some 4-5 years back when C was the only language i knew. I dont mind rewriting in any other language since the code isnt too large.

Still no one is directly interested in knowing the symbolic derivates at the click of a button :( and i still aint encouraged to implement those matrix calculations.

I am a software engineer working in those usual IT firms for two years. I think its time to do my own thing. I want to work in the physics engines cos i enjoy physics and maths and had been quite good at them in my educational years.

Suggestions, tips, jobs, private messages all are most welcome.

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.