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 ???
Another possibility I've been thinking about - in order to avoid these oscillations I talked about before - is to use regularization, maybe? I did a project some years ago using Tikhonov regularization, but here AFAIR - the idea was that all the elements in the solution-vector x could not change too much... This will allow me to use higher timesteps and avoid the oscillations... Understand it ?
ELABORATION FOR THOSE WHO DON'T UNDERSTAND THE PHYSICS: Here's an elaboration of why I have a problem with high angular velocities: If some part of the problem (top rows in A) rotates very slow, i.e. at 1 rad/s and your timestep is 0.01 sec - it means that you have 100 timesteps per rotation. That's ok... However, the lower rows in A rotates much faster - then I only get maybe 5-8 timesteps per rotation. This gives some VERY annoying oscillations and forces going in "random" directions because the motion is not smoothly captured.
I want my program to solve x = A\b quickly and efficent - any ideas that might help me (and keep the computation time reasonable) ? Any tricks / tips ?
I really hope to hear from some clever experts here... Thanks...