Matlab - Problema función "ge"

 
Vista:

Problema función "ge"

Publicado por holyo (30 intervenciones) el 26/04/2009 02:03:08
Hola, estoy haciendo un programa M-File que resuelve un ejercicio que estoy haciendo. El problema es que me da un error matlab y no sé que significa porque intenté solucionarlo pero nada. Os pongo todo el programa (no hace falta entender de que va):

clear;
syms a h k
v=12; %Velocidad
Cp=0.4; %Coeficiente de potencia
n=200; % Revoluciones por minuto
p=3; %Número de palas
P=10000; %Potencia
D=sqrt(8*P/(1.23*Cp*pi*v^3)); % Diámetro
r= D/2; % Radio
alfa=5.5; % Ángulo óptimo
Cl=1.0347; % Coeficiente de sustentación óptimo
Eficiencia=95.5429 ; % Eficiencia maxima
E=1/Eficiencia ; %Epsilon , ángulo de planeo
MATRIZ=[];
for i=0.25:0.25:r
L=2*pi*n*i/(60*v); %Lambda, velocidad específica
%%Inicio del proceso de linealización y resolucion del sistema de
%%ecuaciones no lineales
d=[3 3];
X= [a h k];
f(1)=2*a*L^2*(1+h)*(1+a-(1+h)*L*tan(E))/((1+h)*L+(1+a)*tan(E))+k+k*((1+a)*(1+a-(1+h)*L*tan(E))/((1+h)^2*L^2+(1+h)*(1+a)*L*tan(E)));
f(2)=k+(1+tan(E)^2)*(L^2*(1-a^2)+k*((1-a^2)/((1+h)^2*L)))/(1+tan(E)*(1+a)/((1+h)*L))^2;
f(3)=-h+1+(1-a)*(1+a-(1+h)*L*tan(E))/(L^2*(1+h)+(1+a)*L*tan(E));
b=[0 0 0];
TOLERANCIA=0.00000000000001;
X0=[1 1 1]; % Es el punto inicial que se escoge para iterar
X0=X0';
Jf=jacobian(f,X);
t=1;
j=1;
while (t>=TOLERANCIA) & (j<100)
A=double(subs(Jf,X,X0));
B=b'-subs(f,X,X0)'+A*X0;
S=AB;
X0=S;
d=b-subs(f,X,X0);
t=
t=norma(b-subs(f,X,X0));
j=j+1;
end
a1=X0(1); % Primera fila de X0, es decir, a
h1=X0(2); % Segunda fila de X0, es decir, h
fi=atan((1+a)/((1+h)*L)); %Ángulo de inclinación en radianes
fi_grados=fi*180/pi; %Ángulo de inclinación en grados
cuerda=8*pi*r*cos(E)*sin(fi)^2*(1-a)/(3*Cl*cos(fi-E)*(1+a));
MATRIZ=[MATRIZ;[i,L,a1,h1,fi_grados,cuerda]];
end
disp(' radio , lambda , a , h , ángulo de inclinación , cuerda ')
display(MATRIZ)


El error que me sale en matlab es:

??? Function 'ge' is not defined for values of class 'sym'.

Error in ==> ge at 18
[varargout{1:nargout}] = builtin('ge', varargin{:});

Error in ==> metodonoideal at 31
while (t>=TOLERANCIA) & (j<100)

Muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problema función

Publicado por ramiro (54 intervenciones) el 26/04/2009 21:28:37
Sólo eliminando la t de la linea de enmedio en:
d=b-subs(f,X,X0);
t=
t=norma(b-subs(f,X,X0));
Y definiendo la S como S=A*B elprograma corrió sin dificultad, obtenéndose:
foromatlab
radio , lambda , a , h , ángulo de inclinación , cuerda

MATRIZ =

[ 1/4, 5*pi/36, -5197115256501860*2^(874), 5028341832536819*2^(872), 180*atan(36/5*(1+a)/(1+h)/pi)/pi, 13610498874333103125/474026950524928*(1+a)/(1+h)^2/pi^2/(25+1296*(1+a)^2/(1+h)^2/pi^2)*(1-a)/cos(atan(36/5*(1+a)/(1+h)/pi)-3016763947417461/288230376151711744)]
[ 1/2, 5*pi/18, NaN, NaN, 180*atan(18/5*(1+a)/(1+h)/pi)/pi, 13610498874333103125/1896107802099712*(1+a)/(1+h)^2/pi^2/(25+324*(1+a)^2/(1+h)^2/pi^2)*(1-a)/cos(atan(18/5*(1+a)/(1+h)/pi)-3016763947417461/288230376151711744)]
[ 3/4, 5*pi/12, 7398517467446094*2^(457), -4858821356317753*2^(457), 180*atan(12/5*(1+a)/(1+h)/pi)/pi, 1512277652703678125/474026950524928*(1+a)/(1+h)^2/pi^2/(25+144*(1+a)^2/(1+h)^2/pi^2)*(1-a)/cos(atan(12/5*(1+a)/(1+h)/pi)-3016763947417461/288230376151711744)]
[ 1, 5*pi/9, 4537009152876595*2^(556), -7850639180538394*2^(555), 180*atan(9/5*(1+a)/(1+h)/pi)/pi, 13610498874333103125/7584431208398848*(1+a)/(1+h)^2/pi^2/(25+81*(1+a)^2/(1+h)^2/pi^2)*(1-a)/cos(atan(9/5*(1+a)/(1+h)/pi)-3016763947417461/288230376151711744)]
[ 5/4, 25*pi/36, 8032490316826180*2^(632), -8592629075634317*2^(632), 180*atan(36/25*(1+a)/(1+h)/pi)/pi, 13610498874333103125/474026950524928*(1+a)/(1+h)^2/pi^2/(625+1296*(1+a)^2/(1+h)^2/pi^2)*(1-a)/cos(atan(36/25*(1+a)/(1+h)/pi)-3016763947417461/288230376151711744)]
[ 3/2, 5*pi/6, 6171635246381203*2^(696), -7832670380295430*2^(696), 180*atan(6/5*(1+a)/(1+h)/pi)/pi, 1512277652703678125/1896107802099712*(1+a)/(1+h)^2/pi^2/(25+36*(1+a)^2/(1+h)^2/pi^2)*(1-a)/cos(atan(6/5*(1+a)/(1+h)/pi)-3016763947417461/288230376151711744)]
[ 7/4, 35*pi/36, 8752271225214568*2^(750), -6400251204213341*2^(751), 180*atan(36/35*(1+a)/(1+h)/pi)/pi, 13610498874333103125/474026950524928*(1+a)/(1+h)^2/pi^2/(1225+1296*(1+a)^2/(1+h)^2/pi^2)*(1-a)/cos(atan(36/35*(1+a)/(1+h)/pi)-3016763947417461/288230376151711744)]
[ 2, 10*pi/9, 7785460692745122*2^(798), -6420327906467066*2^(799), 180*atan(9/10*(1+a)/(1+h)/pi)/pi, 13610498874333103125/7584431208398848*(1+a)/(1+h)^2/pi^2/(100+81*(1+a)^2/(1+h)^2/pi^2)*(1-a)/cos(atan(9/10*(1+a)/(1+h)/pi)-3016763947417461/288230376151711744)]
[ 9/4, 5*pi/4, 6543274246746450*2^(841), -5984037750588861*2^(842), 180*atan(4/5*(1+a)/(1+h)/pi)/pi, 1512277652703678125/4266242554724352*(1+a)/(1+h)^2/pi^2/(25+16*(1+a)^2/(1+h)^2/pi^2)*(1-a)/cos(atan(4/5*(1+a)/(1+h)/pi)-3016763947417461/288230376151711744)]
[
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema función

Publicado por holyo (30 intervenciones) el 26/04/2009 22:36:33
Muchas gracias, perdona la torpeza que no me había fijado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema función

Publicado por ramiro (54 intervenciones) el 26/04/2009 23:08:08
No te preocupes, es común que cosas así se nos pasen.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema función

Publicado por holyo (30 intervenciones) el 28/04/2009 03:39:18
Hola, después de haber corregido el error, el progrma en matlab me funcionaba, pero a veces me vuelve a aparecer. Lo que hago es apagar matlab y volver a encender. No es la mejor forma, pero es que no sé porque me sale el error que te había comentado.

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema función

Publicado por ramiro (54 intervenciones) el 28/04/2009 06:11:50
Lo he corrido cinco veces consecutivas y en todas ha funcionado sin problemas, sé que eso no es una prueba contundente de su buen funcionamiento, de hecho es más contundente la falla que comentas ´porque esa sí demuestra, de manera definitiva, que existe algún error en el programa que hay que corregir.
¿Siempre te manda el mismo código de error?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema función

Publicado por holyo (30 intervenciones) el 28/04/2009 10:17:27
Pues sí, y siempre me sale cuando inicio por primera vez el programa, cuando apago el matlab y lo vuelvo a encender ya no me sale.

El error es este:

??? Function 'ge' is not defined for values of class 'sym'.

Error in ==> ge at 18
[varargout{1:nargout}] = builtin('ge', varargin{:});

Error in ==> metodonoideal at 32
while (t>=TOLERANCIA) & (j<100)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar