SoloCodigo

Programación Específica => Matlab => Mensaje iniciado por: DiegoRo en Domingo 15 de Octubre de 2006, 08:30

Título: Funciones Para Diseño Aerodinamico
Publicado por: DiegoRo en Domingo 15 de Octubre de 2006, 08:30
quiero hacer  una funcion que me haga lo siguiente:

Tengo 2 vectores s y vs

s        vs

0        -3
1        -2
2        -1
3         0
4         1
5         2
6         3
7         4
8         5
9         6
10       9

y quiero que calcule la integral desde vs= min(vs) hasta vs(1) y otra integral desde vs=min(vs) hasta vs(n), pero que en cada paso k, me vaya guardando los valores en un nuevo vector llamado [jis], a continuacion escribo lo que hice, mi problema es que para un determinado ejemplo, la funcion trabaja sin dificultades, pero para otro, ya no funciona, cual es mi error, alguien podria ayudarme en este y otros algoritmos par otras funciones. gracias

function [jis]=potencial(s,vs);

%Función para calcular ji(s)
%s = Vector de la coordenada de arco
%vs = Vector de la coordenada de la velocidad

n=length(s);
[Y,I]=min(abs(vs));

%-------------------------------------------------------------------------
for k =1:I-1;
   ji1=(s(k+1)-s(k))*((vs(k+1)+vs(k))/2);
  ji1=ji1';
   b(k)=sum(ji1);
   r1=b';
   r1=-sort(r1,1,'ascend');
end
r1(I)=0;
r1;
%-------------------------------------------------------------------------
for k = I : n-1;
   
  ji2(k)=(s(k+1)-s(k))*((vs(k+1)+vs(k))/2);
  ji2=ji2'
  b(k+1)=sum(ji2);
   
end
r2=b';
r2;
%-------------------------------------------------------------------------
for k = 1: I;
   
    r2(k)=r1(k);
   
end
%-------------------------------------------------------------------------
jis=r2;