Premise: the implementation will be done in Python.
I have a number of points being tracked in space ($x$, $y$ and $z$ for each frame). I also have a set of pre-defined movements $S$ (from $1$ to $n$) that affect all of the points being tracked (from $1$ to $m$). What I am trying to do is to build a linear system of the form
All of the terms $S$ represent the position of the point $p$ when that predefined movement is set to 100%. To make an example, the term $S_{2p1y}$ represent the y position of the point 1 when the predefined movement S2 is 100%. All the terms "w" are the values I want to find, w stands for weight, and should be a value between 0 and 1(from 0% to 100%). The column vector P is the known terms and represent the position of a point in space in a specified frame.
Basically, I want to decompose the values P in the weights of the predefined movements to know per each frame how much each movement should be activated. Solving the system should be the easy part, what I am bit afraid of is to always get results between 0 and 1. Since it is a linear system there should be only 1 set of solutions, so there is no much I can do, right? I did some digging about the particular application case where I am going to use this system and most common approaches are singular value decomposition and principal component analysys, still I don't see how those might help me to keep the weights between 0 and 1. Do you maybe have any other idea of how I can approach this?
Just to give a bit more context, the "predefined movements" are facial expressions recorded during the calibration of the system, the points being tracked are the motion capture data of the face.
Thanks in advance to everyone.
EDIT: As I was asked I will explain a bit better why I need the weights to be between 0 and 1. Assume that the shape 1 is the movement of the eyebrow lowerer muscle. It can't be negative, it can't go any further than its limit(100%). This applies to all of the shapes.

