Bonjour,
j´ai écrit le code suivant pour résoudre une équation basique. Mais le fait est qu´il est extrêmement lent. Quelqu´un aurait-il une solution pour l´optimiser ?
D´autre part mon principal probleme est que le vecteur data contient un nombre complexe et si j´essaye ce code là :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 function [ result ] = SolveEq( data ) %SOLVEEQ Summary of this function goes here % Detailed explanation goes here syms x [l,~] = size(data); result = zeros(l,1); for i = 1:1:l result(i,1) = solve(sprintf('(x+50)/(x-50)=%.5d',data(i,1))); end end
j´obtiens l´erreur suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part result(i,1) = solve(sprintf('(x+50)/(x-50)=%8.3f + %8.3f*1i',real(data(i,1)),imag(data(i,1))));
La fonction solve ne peut elle résoudre des équations complexes ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 ??? Error using ==> solve>getEqns at 178 ' (x+50)/(x-50)= 0.927 + 0.148*1i ' is not a valid expression or equation. Error in ==> solve at 67 [eqns,vars] = getEqns(varargin{:});
MATLAB Version 7.9.0.529 (R2009b)
Partager