全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1404 2
2015-03-24
data _null_;
start=1;
end=2;
do until(range(start,end) le 0.0001);
y1=log(start)+start-1.5;
temp=(start+end)/2;
y2=log(temp)+temp-1.5;
y3=log(end)+end-1.5;

if y1*y2<0 then do; end=temp;end;
else if y1*y3<0 then do;start=temp;end;

put y1=;
put y2=;
put y3=;
put start=;
put temp=;
put end=;
end;
final_value=(start+end)/2;
put start=;
put end=;
put final_value;
run;

菜鸟想问 为什么这里的else if后面是y1*y3而不是y2*y3,我都试过,两个结果是一样的,但是,要是我写,我肯定写y2*y3,为什么姚老师用y1*y3呢??

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2015-3-24 15:30:08
因为如果第一个条件不满足的话,那么可以判断y1和y2同号,那么第二个条件中y1*y3和y2*y3就没有区别了。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-3-24 17:06:38
mingfeng07 发表于 2015-3-24 15:30
因为如果第一个条件不满足的话,那么可以判断y1和y2同号,那么第二个条件中y1*y3和y2*y3就没有区别了。
哦~~原来是这样,谢谢您~~
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群