www.gusucode.com > EWA电磁波和天线工具箱源码程序 > EWA电磁波和天线工具箱源码程序/Antenna_Toolbox/quadrs.m

    % quadrs.m - Gauss-Legendre quadrature weights and evaluation points on subintervals
%
% Usage: [w,x] = quadrs(ab,N)
%        [w,x] = quadrs(ab)         (equivalent to N=16)
%
% ab = integration subintervals = [a0,a1,a2,...,aM]
% N  = number of weights in quadrature formula (default N=16)
%
% w = length-N column vector of (symmetric) weights
% x = length-N column vector of shifted/scaled Legendre evaluation points 
%
% notes: the desired interval [a,b]=[a0,aM] is divided into M subintervals [a0,a1,...,aM]
%        and the weights/evaluation points of each subinterval are computed by QUADR 
%        and concatenated together, that is, 
%
%        w = [w1; w2; ...; wM], x = [x1; x2; ..., xM]
%
%        the desired integral over [a,b] is J = w'*f(x) = w1'*f(x1) + ... + wM'*f(xM)
%
% examples: [w,x] = quadrs([1,2], 5);
%           [w,x] = quadrs([1,1.5,2], 5);           
%           [w,x] = quadrs(linspace(1,2,9), 5);
%
%           the operation: [w,x] = quadrs([1,1.5,2], 5) is equivalent to:
%           [w1,x1] = quadr(1,1.5,5); [w2,x2]=quadr(1.5,2,5); w=[w1;w2]; x=[x1;x2]
%
%        see also QUADR

% S. J. Orfanidis - 1999 - www.ece.rutgers.edu/~orfanidi/ewa       

function [w,x] = quadrs(ab,N)

if nargin==0, help quadrs; return; end
if nargin==1, N=16; end

M = length(ab) - 1;

w = [];
x = [];

for i=1:M,
    [wi,xi] = quadr(ab(i), ab(i+1), N);
    w = [w; wi];
    x = [x; xi];
end