function [realzeros]=newtonfunc(y,  dydx, x, tol)
%  [[ [realzeros]=newtonfunc(y,  dydx, x, tol)   ]]
%
%  ニュートン・ラプソン法を用いて y(x)=0 の解を繰り返し計算で求めます．
%  引数
%  y      :  文字式で入力された関数　y(x)
%  dydx  :  文字式で入力された関数　y(x)の微分関数
%  x      :  x の推定値
%  tol    :  許容誤差
%  返し値
%  realzeros  : 繰り返し計算で収束するまでに算出された全ての解
% 
% 
% Copyright (C) 2007 清水 信行, 曽我部 潔, 小金澤 鋼一 All Rights Reserved.

% =================================================================================
% プログラムの使用条件
% 1. 本プログラムおよびデータを商用で，頒布してはならない．
% 2. 本プログラムおよびデータを著作者の許可なく営利目的で利用してはならない．
% 3. 本プログラムおよびデータの改変は，営利目的でない限り自由である．
% 4. 本プログラムおよびデータを使用することにより生じた損害などについては，著者，
%    プロクラム著作者，(社)日本機械学会，および(株)コロナ社は一切の責任を負わない．
% 5. 本プログラムの著作権は，本書編著者ならびにプログラム著作者に帰す．
% =================================================================================

    realzeros=[];
       for l= 1:100
           x0 = x;
           x = x0-eval(y)/eval(dydx);
           [l,x]
           if abs(x-x0)<tol
               break
           end
       end
       
       if (l==100)&(abs(x-x0) >= tol)
           disp('一定値に収束しません')
       else
           realzeros = [ realzeros x];
       end