el problema es que esta es una función que depende de otra funciones más que yo he creado, y los parametros de entrada tambien dependen de otras funciones, pero bueno aqui vá la funcion completa,
q0x y q0y no te los puedo dar ya que los desconozco porque dependen de otra función que utilizo en el programa principal
G=depende del programa principal pero en general vale 4Pi
qlim, depende lo q0 vector programa principal
w0 una energía depende del programa principal
w energías totales depende del programa principal
nr size(w,2)
tol 10^-4
function [DELTA TOLDELTA]=busca(q0x,q0y,q,qlim,G,w0,w,nr,tol)
% Esta funcion busca interacciones energeticas para un vector de onda dado q0 con una freq w0
%
%% input parameter
% q0 vector
% q wavevector
% qlim Brillouin zone limit
% G vector
% w0 frequency scalar
% w frequency matrix
% nr numero de polarizaciones
% tol tolerancia para q0==q2
%% output
% Delta matrix de las interacciones
% TOLDELTA matrix de las tolerancias de los procesos
DELTA(1:nr,1:nr)=0;TOLDELTA =DELTA;
for p1=1:nr %%se varia pol de w'
for p2=1:nr %%se varía pol de w"
""LINEA 22""
for thj=0:359%%se varía el angulo de q'
""LINEA 26""
q1xmin=double((G/2-q0x)*cos(thj*pi/180));
q1ymin=double((G/2-q0x)*sin(thj*pi/180));
if sqrt(q1xmin^2+q1ymin^2)<G/2
r=1;
while q(r)<=sqrt(q1xmin^2+q1xmin^2)%se busca la posición de q'
r=r+1;
if r>qlim
"""Vaya a la linea 22""" % está es la linea que me falta
end
if abs(q(r)-sqrt(q0x^2+q0y^2))<=tol
""VAYA A LiNEA 26"""
end
end
for ll=r-1:qlim
q1x=double(q(ll)*cos(thj*pi/180));
q1y=double(q(ll)*sin(thj*pi/180));
if abs(q1x+q0x)>G/2&&abs(q1y+q0y)<G/2
q3=double(sqrt((q0x+q1x-G/2)^2+(q0y+q1y)^2));
end
if abs(q1x+q0x)<G/2&&abs(q1y+q0y)>G/2
q3=double(sqrt((q0x+q1x)^2+(q0y+q1y-G/2)^2));
end
if abs(q1x+q0x)<G/2&&abs(q1y+q0y)>G/2
q3=double(sqrt((q0x+q1x-G/2)^2+(q0y+q1y-G/2)^2));
end
if q3<G/2
rr=1;
while q(rr)<=q3
rr=rr+1;
end
Dw1=double(abs(w0+w(ll,p1)-w(rr-2,p2)));
Dw2=double(abs(w0+w(ll,p1)-w(rr-1,p2)));
Dw3=double(abs(w0+w(ll,p1)-w(rr,p2)));
if Dw1<Dw2
dw=Dw1;
else
dw=Dw2;
end
if dw>Dw3
dw=Dw3;
end
[DW TOL]=guarda(dw);%%%guarda funcion que verifica si es proceso es posible
DELTA(p1,p2)=DW;
TOLDELTA(p1,p2)=TOL;
end
end
end
end
end
end