⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sumcurve.m

📁 这是一个支持向量机的工具
💻 M
字号:
function [P,P2,ph,id]=sumcurve(bx,u,vi,chois)
% sum frame elements on each Ui of curve manifold Mx
% u - integral scope; bx - efficients of curve functions
% p,p2,ph,ph - integral results; id - cross indicator
% All rights Reserved, Feb. 2006. Kaijun WANG

if chois=='each'

[nl,nc,nx]=size(bx);
if length(nx)==0 nx=1; end
[nr,nc]=size(vi);
v=length(u);
S=(1:(v-1):nl*(v-1))-1;

% sum on Ui by quadrature of curve f(u)=a*u^2+b*u+c is 
% F(u)=1/3*a*u^3+1/2*b*u^2+c*u, and the one of f(u)*g(u)
for i=1:nx
  a=bx(:,1,i);
  b=bx(:,2,i);
  c=bx(:,3,i);
% p(i)=[F(t)-F(s)]
  for k=1:v-1
    s=u(k);
    t=u(k+1);
    R=S+k;
    P(R,i)=a*(t^3-s^3)/3+b*(t^2-s^2)/2+c*(t-s);
  end
% [p(i)p(i)]=F(t)-F(s)
  for k=1:v-1
    s=u(k);
    t=u(k+1);
    R=S+k;
    Q=a.^2*(t^5-s^5)/5+a.*b*(t^4-s^4)/2+(2*a.*c+b.^2)*(t^3-s^3)/3;
    P2(R,i)=Q+b.*c*(t^2-s^2)+c.^2*(t-s);
   end
% quadrature in starting points of curve
   for j=1:nr
     U=(vi(j,1)-1):vi(j,2);
     for k=1:v-1
      s=U(k);
      t=U(k+1);
      R=S(j)+k;
      P(R,i)=a(j)*(t^3-s^3)/3+b(j)*(t^2-s^2)/2+c(j)*(t-s);
      Q=a(j)^2*(t^5-s^5)/5+a(j)*b(j)*(t^4-s^4)/2+(2*a(j)*c(j)+b(j)^2)*(t^3-s^3)/3;
      P2(R,i)=Q+b(j)*c(j)*(t^2-s^2)+c(j)^2*(t-s);
     end
   end
end

ks=0; 
for i=1:nx
 for j=i+1:nx
  ks=ks+1; 
  id(i,j)=ks; 
  id(j,i)=ks;
  a= bx(:,1,i).*bx(:,1,j)/5;
  b=(bx(:,1,i).*bx(:,2,j)+bx(:,1,j).*bx(:,2,i))/4;
  c=(bx(:,1,i).*bx(:,3,j)+bx(:,1,j).*bx(:,3,i)+bx(:,2,i).*bx(:,2,j))/3;
  d=(bx(:,2,i).*bx(:,3,j)+bx(:,2,j).*bx(:,3,i))/2;
  e= bx(:,3,i).*bx(:,3,j);
% [p(i)h(j)]=F(t)-F(s)
  for k=1:v-1
    s=u(k);
    t=u(k+1);
    R=S+k;
    ph(R,ks)=a*(t^5-s^5)+b*(t^4-s^4)+c*(t^3-s^3)+d*(t^2-s^2)+e*(t-s);
  end
  for m=1:nr
    U=(vi(m,1)-1):vi(m,2);
    for k=1:v-1
      s=U(k);
      t=U(k+1);
      R=S(m)+k;
      ph(R,ks)=a(m)*(t^5-s^5)+b(m)*(t^4-s^4)+c(m)*(t^3-s^3)+d(m)*(t^2-s^2)+e(m)*(t-s);
   end
 end
 end
end


else % old sumcurve
    
nx=size(bx,3);
if length(nx)==0 nx=1; end
[nr,nc]=size(vi);
v=length(u);
% Ui=(s,t]
s=u(1);
t=u(v);

% sum on Ui by quadrature of curve f(u)=a*u^2+b*u+c is 
% F(u)=1/3*a*u^3+1/2*b*u^2+c*u, and the one of f(u)*g(u)
for i=1:nx
a=bx(:,1,i);
b=bx(:,2,i);
c=bx(:,3,i);
% p(i)=[F(t)-F(s)]
P(:,i)=a*(t^3-s^3)/3+b*(t^2-s^2)/2+c*(t-s);
% [p(i)p(i)]=F(t)-F(s)
Q=a.^2*(t^5-s^5)/5+a.*b*(t^4-s^4)/2+(2*a.*c+b.^2)*(t^3-s^3)/3;
P2(:,i)=Q+b.*c*(t^2-s^2)+c.^2*(t-s);
% U1=(u,v], U2=(u,v]
 for j=1:nr
  u=vi(j,1)-1;
  v=vi(j,2);
  P(j,i)=a(j)*(v^3-u^3)/3+b(j)*(v^2-u^2)/2+c(j)*(v-u);
  Q=a(j)^2*(v^5-u^5)/5+a(j)*b(j)*(v^4-u^4)/2+(2*a(j)*c(j)+b(j)^2)*(v^3-u^3)/3;
  P2(j,i)=Q+b(j)*c(j)*(v^2-u^2)+c(j)^2*(v-u);
 end
end

k=0; 
for i=1:nx
 for j=i+1:nx
  k=k+1; 
  id(i,j)=k; 
  id(j,i)=k;
  a= bx(:,1,i).*bx(:,1,j)/5;
  b=(bx(:,1,i).*bx(:,2,j)+bx(:,1,j).*bx(:,2,i))/4;
  c=(bx(:,1,i).*bx(:,3,j)+bx(:,1,j).*bx(:,3,i)+bx(:,2,i).*bx(:,2,j))/3;
  d=(bx(:,2,i).*bx(:,3,j)+bx(:,2,j).*bx(:,3,i))/2;
  e= bx(:,3,i).*bx(:,3,j);
% [p(i)h(j)]=F(t)-F(s)
  ph(:,k)=a*(t^5-s^5)+b*(t^4-s^4)+c*(t^3-s^3)+d*(t^2-s^2)+e*(t-s);
  for m=1:nr
    u=vi(m,1)-1;
    v=vi(m,2);
    ph(m,k)=a(m)*(v^5-u^5)+b(m)*(v^4-u^4)+c(m)*(v^3-u^3)+d(m)*(v^2-u^2)+e(m)*(v-u);
  end
 end
end

end % end choise if

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -