Borrar filtros
Borrar filtros

linsolve time-consuming

3 visualizaciones (últimos 30 días)
Fikret Dogru
Fikret Dogru el 22 de Jun. de 2019
Comentada: Torsten el 27 de Jun. de 2019
Hello all,
Here is my code and it is running more than 2 days. Z1, Z2, A, B, D and E are known 1 X 1.000.000 vector and C and F are constant values 1X1. I am trying to estimate X and Y but the program is still working. Is there any chance to find when will it finish with these matrices? Any help will be great. Thanx all.
syms X Y
Z1=X.*A-Y.*B*C;
Z2=X.*D-Y.*E*F;
[A,B]=equationsToMatrix([Z1,Z2], [X,Y]);
X = linsolve(A,B);

Respuesta aceptada

Stephan
Stephan el 23 de Jun. de 2019
Get rid of symbolic calculation - this makes code very slow and solve numeric:
clear X Y
% This works if your values are of size 1 x 1.000.000
X = linsolve([A', (-B.*C)'; D.' (-E.*F)'],[Z1'; Z2'])
  5 comentarios
Stephan
Stephan el 27 de Jun. de 2019
Editada: Stephan el 27 de Jun. de 2019
You should thank Torsten - but here is an explaination of what he did:
syms X Y A B C D E F Z1 Z2
eq(1) = Z1==X.*A-Y.*B*C;
eq(2) = Z2==X.*D-Y.*E*F;
sol = solve(eq,[X,Y]);
sol.X
sol.Y
Torsten
Torsten el 27 de Jun. de 2019
@ Fikret Dogru:
The method is called "Cramer's rule".

Iniciar sesión para comentar.

Más respuestas (0)

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by