У меня есть система, которая выглядит примерно так:Matlab обратного преобразования (не линейная) система
z1 = 5*x1 + x2*cos(x3)
z2 = x1*sin(x3) + 3*x2
z3 = 3*x1 - 2*x2
, который является преобразование системы дифференциальных уравнений (просто чтобы дать некоторый контекст, я не подумайте, что вам действительно нужно это знать). Теперь я хотел бы найти обратные эту трансформацию, которая будет выглядеть примерно так:
x1 = ...(stuff with z1, z2, z3)...
x2 = ...
x3 = ...
теперь я предполагаю, что с помощью этой системы относительно легко найти его вручную, но я должен сделать то же самое с 7 переменными 7, и было бы довольно утомительно.
Я не могу найти способ заставить Matlab сделать это, может ли кто-нибудь помочь?
Я не думаю, что в большинстве случаев это неизбежно математически возможно. Даже с помощью только одного уравнения, такого как 'z1 = cos (x1)', вы не можете найти функцию 'x1 = f (z1)', потому что в исходном уравнении многие значения 'x1' дают одинаковое значение' z1'. (т. е. cos (0) = 1 и cos (2 * pi) = 1) –
Очень верно, но в этом случае 'x1, x2 ...' и 'z1, z2 ...' не имеют определенного значения, поэтому вы может найти обратную функцию, она может иметь другой домен. Также я предполагаю, что, поскольку все они являются динамикой физической системы, всегда нужно найти обратное, иначе вы бы тормозили физику ... – Skipjack3