SAS中文论坛

标题: 关于解方程的问题 [打印本页]

作者: shiyiming    时间: 2008-7-11 21:07
标题: 关于解方程的问题
想用SAS来解这个方程,怎么解啊,之后数据又在哪里找,非常谢谢各位了。
1 - 1.03653 B**(1) + 0.30175 B**(2)=0
作者: shiyiming    时间: 2008-7-12 14:15
标题: Re: 关于解方程的问题
%macro ercif(a,b,c);
%global j1 j2 ;
%if %sysevalf((&b**(2)-4*&a*&c)<0) %then  %do;
%put "无解";
%let j1=none;
%let j2=none;
%end;
%if %sysevalf((&b**(2)-4*&a*&c)=0) %then %do;
%put "两个相同解是" %sysevalf(-&b/(2*&a)) ;
%let j1=%sysevalf(-&b/(2*&a));
%let j2=%sysevalf(-&b/(2*&a));
%end;
%if %sysevalf((&b**(2)-4*&a*&c)>0) %then %do;
%let d=%sysevalf((&b**(2)-4*&a*&c)**(0.5));
%put "两个不同解是" %sysevalf((-&b+&d)/(2*&a)) "and"  %sysevalf((-&b-&d)/(2*&a));
%let j1=%sysevalf((-&b+&d)/(2*&a));
%let j2=%sysevalf((-&b-&d)/(2*&a));
%end;
%mend;
%ercif(1,2,1);
%put &j1 &j2;
%ercif(1,2,0);
%put &j1 &j2;
%ercif(1,1,1);
%put &j1 &j2;
%ercif(1,10,1);
%put &j1 &j2;
*1 - 1.03653 B**(1) + 0.30175 B**(2)=0;
%ercif(0.30175,- 1.03653,1);
%put &j1 &j2;
如果只是一元二次等式,用上面的宏就可以了。变量的解保留在宏变量里面了,可以用&j1,&j2调用。
上次你问我的时间序列,我也不太熟悉,所以怕误导你。你试一下,它会在log窗口里面读出的。
作者: shiyiming    时间: 2008-7-13 13:52
标题: Re: 关于解方程的问题
一元多次多项式可以用这个软件解熟读快而且精度高:matlab,外面卖一张盘,网上随处都可以找到资料,它是解方程多项式,多元一次方程,矩阵,微分方程的有效武器,还可以解一系列函数。sas主要是统计分析等其他方向的。 <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D -->
作者: shiyiming    时间: 2008-7-13 15:58
标题: Re: 关于解方程的问题
thanks a lot




欢迎光临 SAS中文论坛 (https://mysas.net/forum/) Powered by Discuz! X3.2