SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 1649|回复: 3
打印 上一主题 下一主题

关于解方程的问题

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2008-7-11 21:07:37 | 只看该作者

关于解方程的问题

想用SAS来解这个方程,怎么解啊,之后数据又在哪里找,非常谢谢各位了。
1 - 1.03653 B**(1) + 0.30175 B**(2)=0
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2008-7-12 14:15:29 | 只看该作者

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窗口里面读出的。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2008-7-13 13:52:59 | 只看该作者

Re: 关于解方程的问题

一元多次多项式可以用这个软件解熟读快而且精度高:matlab,外面卖一张盘,网上随处都可以找到资料,它是解方程多项式,多元一次方程,矩阵,微分方程的有效武器,还可以解一系列函数。sas主要是统计分析等其他方向的。 <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D -->
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2008-7-13 15:58:19 | 只看该作者

Re: 关于解方程的问题

thanks a lot
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2026-2-4 21:49 , Processed in 0.069212 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表