Bonjour
j'ai fait un programme MATLAB qui contient beaucoup d'équations alors j'ai eu recours à des Function , or j'ai en utilisé autant et y'en a qui se ressemblent comme ces deux fonctions là:
la première:
et la deuxième:Code:function[intH18]=fun18(Qs,mm,kk) intH18=zeros(Qs*kk,Qs*mm); rad=pi/180; d=3*rad; Pd=360/Qs; c=0.5*Pd*rad; r3=46.25e-3; ii=0; for i=1:Qs for k=1:kk ii=ii+1; for m=1:mm if (m^2)*(c^2)==(k^2)*(d^2) intH18(ii,m)=-(m/(8*c*k*d))*((2*c*k*pi*cos((-c*k*pi+k*pi*d)/(2*c))-c*sin((-c*k*pi+k*pi*d)/(2*c)))+c*sin((3*k*pi*c+k*pi*d/(2*c))))*r3^((m*pi/d)-1); else intH18(ii,m)=(((m^2)*c)/2)*(1/((k*d)^2-(m*c)^2))*((1+(-1)^k)*sin(m*pi*c/(2*d))*cos(m*pi/2)+(-1+(-1)^k)*cos(m*pi*c/(2*d))*sin(m*pi/2))*r3^((m*pi/d)-1); end end end end
alors la seule différence entre les deux c'est dans la première l'équation est multipliée par r3^((m*pi/d)-1) et dans la seconde r3^(-(m*pi/d)-1)Code:function[intH17]=fun17(Qs,mm,kk) intH17=zeros(Qs*kk,Qs*mm); rad=pi/180; d=3*rad; Pd=360/Qs; c=0.5*Pd*rad; r3=46.25e-3; ii=0; for i=1:Qs for k=1:kk ii=ii+1; for m=1:mm if (m^2)*(c^2)==(k^2)*(d^2) intH17(ii,m)=(m/(8*c*k*d))*((2*c*k*pi*cos((-c*k*pi+k*pi*d)/(2*c))-c*sin((-c*k*pi+k*pi*d)/(2*c)))+c*sin((3*k*pi*c+k*pi*d/(2*c))))*r3^(-(m*pi/d)-1); else intH17(ii,m)=-(((m^2)*c)/2)*(1/((k*d)^2-(m*c)^2))*((1+(-1)^k)*sin(m*pi*c/(2*d))*cos(m*pi/2)+(-1+(-1)^k)*cos(m*pi*c/(2*d))*sin(m*pi/2))*r3^(-(m*pi/d)-1); end end end end
ma question est ce que je peux utiliser qu'une seule fonction au lieu de deux et comment faire les utiliser pour chacune ?
Merci beaucoup
-----