1. 程式人生 > >1.7變數檢測與傳遞

1.7變數檢測與傳遞

均值不等式是高中甚至是大學數學的一個難點,它涉及1)算術平均值,2)幾何平均值,3)調和平均值,4)平方平均值,試編寫一個程式驗證均值不等式,要求程式輸入引數和輸入引數可變。

【分析】假設程式的每一個輸入引數代表一個正實數,輸出是四個平均值,若只能有一個輸出引數,則以表格形式輸出四個平均值,否則4個輸出引數分別輸出各個平均值,編寫程式如下:

function  varargout = ave(varargin )
 n=nargin;  %nargin返回函式輸入引數個數
 n
 [An,Gn,Hn,Qn]=deal(0,1,0,0);    %預置初始值
 for i=1:n
     ak=varargin{i};
     if any(ak)<=0
         error('輸入引數必須為整數');
     end
     An = An + ak;
     Gn = Gn.* ak;
     Hn = Hn + 1./ak;
     Qn = Qn + ak.^2;

 end

 A = An / n;
 G = Gn.^ (1/n);
 H = n./ Hn;
 Q = sqrt(Qn/n);
 nargout
 if nargout == 1
     varargout{1} = table(A,G,H,Q,...
     'variablenames',{'Arithmetic','Geomotric','Harmonic','Square'});
 else
     [varargout{1:4}] = deal(A,G,H,Q);
 end
     
end