首页 > 代码库 > 对任意函数求导的sas模拟

对任意函数求导的sas模拟

*模拟求导 步长一定要比阈值小,才能得出准确的结果;data Derivation (keep=interval slope);    * function y = 1/x only concern about x>0;    deltaX = 1e-6; *割线变为切线时x1减小的步长;    x0 = 2; y0 = 0; %function(y0,x0);*需要求导的点;    put y0;    slope = 0; *需要求得的斜率,即倒数;    interval = 5; *x0与x1的在x轴的间距,也是判定停止求导的变量;    x1 = x0 + interval; y1 = 0;%function(y1,x1); *割线另一端的点,辅助求导的点;    thershold = 1e-6 - 1e-7;*停止求导的阈值;    do until (interval < thershold);        interval = interval - deltaX; *更新x0 与x1的间距;        x1 = x0 + interval;%function(y1,x1); *更新x1的坐标;        slope = (y1-y0) / (x1-x0);*更新斜率,即倒数;        output;    end;run;/*这里是任意你需要求导的函数, sas使用的是按址更新的策略,所以不需要写返回值*/%macro function(y,x);    &y = 1 / &x;%mend;

 

对任意函数求导的sas模拟