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

📄 ghgf.m

📁 很多matlab的源代码
💻 M
字号:
function Y = ghgf(p,q,a,c,x,tol)
%GHGF	Generalized Hyper Geometric Function
%
%	SUPPORT FILE for evaluation of many special mathematical functions
%	SEE for example the m-files: GM, SI, SX, CX etc.


% ADSP Toolbox: Version 2.0 
% For use with "Analog and Digital Signal Processing", 2nd Ed.
% Published by PWS Publishing Co.
%
% Ashok Ambardar, EE Dept. MTU, Houghton, MI 49931, USA
% http://www.ee.mtu/faculty/akambard.html
% e-mail: akambard@mtu.edu
% Copyright (c) 1998


%REF: "A Compact Mathematical Function Package"
%     Australian Computer Journal v16, Aug.1984 

if nargin==0,help ghgf,return,end

if nargin<6,tol=2e-16;end
%vx=matverch;
%if vx < 5
%if exist('ghgff')==3,Y = eval('ghgff(p,q,a,c,x,tol)');return,end
%end

[m,n]=size(x);Y=zeros(m,n);
pqm=max(p,q);xa=a;xc=c;kmax=2000;
aa=[ones(1,p) zeros(1,pqm-p)];
cc=[ones(1,q) zeros(1,pqm-q)];
for l=1:m*n
      a=xa(1,1:pqm);c=xc(1,1:pqm);y=1;sum=1;k=1;cv=0;last_y=1;
  while ((k <= kmax) & (abs(y) > tol))
      for i=1:pqm,y= y* a(i)/c(i);end
      y=y*x(l)/k;new_y=abs(y);if new_y <= last_y,cv=1;end
      if ((new_y > last_y) & (cv == 1)),y=0;end
      sum=sum+y;last_y=abs(y);k=k+1;a=a+aa;c=c+cc;
  end
Y(l)= sum;
if k >=kmax,disp(['Warning: No convergence for x(' num2str(l) ')']),end
end

⌨️ 快捷键说明

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