Optimisation d'un programme matlab

Fermé
mounir - 14 mars 2005 à 17:33
 haki - 4 févr. 2008 à 16:54
s'il vous plais jai besoin d'un coup de main, le programme suivant prend des heurs pour donner le résultat. je suis pas un pro de programmation, je matipule des grosses matrice, j'aimerai l'optimiser y a t'il un moyen est comment.
merci beaucoup.
A voir également:

2 réponses

s'il vous plais jai besoin d'un coup de main, le programme suivant prend des heurs pour donner le résultat. je suis pas un pro de programmation, je matipule des grosses matrice, j'aimerai l'optimiser y a t'il un moyen est comment.
merci beaucoup.
programme:

function S=sample(M,p)
% This function samples two dimentional matrices in the row sens
% Syntax: S=sample(M,p)
% Where M is the matrix to sample and p is the step (>=1)
% and S the sampled matrix
% To make the function work in the column sens simply transpose M, and
% finaly transpose the result S


[m,n]=size(M);

% Verifies the step value
if p==m
S(1,:)=M(1,:);
return
elseif (p>m | p<1)
error('The step p must be < the number of rows')
return
end

% Computes the sampled matrix
S(1,:)=M(1,:);
for i=p:p:m
S(1+i/p,:)=M(i+1,:);
end
0
tion [fx,gr,ind2] = calcf(x,ind)
fx=0.0;
Cc=10000/3600;
Ch=10000/3600;
Si=100;
Tsci=273;
Tshi=293;
Tsc0=263;
gr=0.0*x;
r=1D-4;
ind2=1;
if ind==2 | ind==4
deff('y=h1(x)','y=x(4)+x(3)-2');
deff('y=h2(x)','y=x(4)*Cc*(Tsci*x(1)/x(2)-Tsci-x(1)+x(2))+x(3)*Ch*(Tshi-x(1))+x(4)*Cc(Tshi-x(2))');
deff('y=h3(x)','y=x(3)*Ch*(Tshi/x(1)-1)+x(4)*Cc*(Tsci/x(2)-1)+Si');
deff('y=h4(x)','y=x(4)*Cc*(Tsci-Tsc0)+x(4)*Cc*(Tsci-x(2))')
deff("y=P(x,r)","y=x(4)*Cc*(Tsci*x(1)/x(2)-Tsci-x(1)+x(2))+r*(1/h1(x)+1/h2(x)+1/h3(x)+1/h4(x))")
fx=P(x,r)
end;
if ind==3 | ind==4
gr(1,1)=x(4)*Cc*(Tsci/x(2)-1)+r*(-(x(4)*Cc*(Tsci/x(2)-1)-x(3)*Ch)/(h2(x)^2)+x(3)*Ch*(Tshi/x(1)^2)/(h3(x)^2));
gr(2,1)=x(4)*Cc*(1-Tsci*x(1)/x(2)^2)+r*((-x(4)*Cc*(-Tsci*x(1)/(x(2)^2)+1)+x(4)*Cc)/(h2(x)^2)-x(4)*Cc*(Tsci/x(2)-1)/(h3(x)^2)+x(4)*Cc/(h4(x)^2));
gr(3,1)=r*(-1/(h1(x)^2)-Ch*(Tshi-x(1))/(h2(x)^2)-ch*(Tshi/x(1)-1)/(h3(x)^2));
gr(4,1)=Cc*(Tsci*x(1)/x(2)-Tsci-x(1)+x(2))+r*(-1/(h1(x)^2)-(Cc*(Tsci*x(1)/x(2)-Tsci-x(1)+x(2))+Cc*(Tsci-x(2)))/(h2(x)^2)-(Cc*(Tsci/x(2)-1))/(h3(x)^2)-(Cc*(Tsci-Tsc0)+Cc*(Tsci-x(2)))/(h4(x)^2));
end;
endfunction;



x0=[300;255;1.5;0.2];
0