On 09/10/2012 10:19 PM, Matt J wrote: > someone <email@example.com> wrote in message > <firstname.lastname@example.org>... >> Here's the deal: >> >> A-matrix is approx. 90x90, mostly diagonal but also quite some >> offdiagonal elements here and there. >> >> Some rows in the matrix are equations that is harder to satisfy than >> others because something is rotating at different speeds - it means >> that those matrix equations (the lower rows in A) that has a physical >> connection to something that rotates really fast, causes some severe >> oscillations (it gives oscillating accelerations and wrong forces) >> because the timestep is very high compared to the rotation speed for >> the last rows in A... Got it? >> >> Ok, is there any way to make: x = A\b more accurate for the lower >> rows/equations or ??? > ================ > > You could put lower weights on the problematic rows > > x=(W*A)\(W*b) > > where W is a diagonal weighting matrix. Or you could throw away those
Thanks, Matt... Wow, thanks... I didn't even knew you could do that... So for instance I make W ones in the top half and maybe 100 in the lowest half ?
> rows altogether and try PINV. Throwing away the bad rows and adding > regularization would be even better, but it's not clear to me, from the > physics of your problem, what regularization would be appropriate.
I think I only know tikhonov from a few years ago... Maybe I also tried another option at that time, cannot really remember. Anyone can cast light on this ?
The problem is that I cannot just throw away bad rows - I also need to calculate the value (accelerations etc) of slowly rotating objects... I would be nice if I can only apply regularization to the lowest equations (lowest part of the A-matrix - this is where I have high velocities)...
Anyway - if someone knows anything, can cast light on this, please post your comments !