码迷,mamicode.com
首页 > 其他好文 > 详细

对任意函数求导的sas模拟

时间:2015-01-07 00:24:43      阅读:312      评论:0      收藏:0      [点我收藏+]

标签:

*模拟求导 步长一定要比阈值小,才能得出准确的结果;
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模拟

标签:

原文地址:http://www.cnblogs.com/yican/p/4207090.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!