huanfeng125 发表于 2010-3-11 13:29
现在有一个方程:P1*1+P2*2+P3*5+P4*10+P5*20+P6*30+P7*40+P8*50+P9*100=0.9
条件是:P1>P2>P3>P4>P5>P6>P7>P8>P9>0
根据这些,能否有办法解方程?方程肯定有无数解,但只要有一种方法,比如用某种软件,找出符合上述条件的若干组解就可以了。
我也想到SAS中IML模块,不过IML只能解方程组,不知道能不能解这样的问题
哪位大虾能有什么好方法吗?The results can be easily constructed.
data t1;
retain p1-p9;
do i=1 to 10;
p9=round(0.001* ranuni(12345),0.0000001);
p8=1.01*p9;
p7=1.01*p8;
p6=1.01*p7;
p5=1.01*p6;
p4=1.01*p5;
p3=1.01*p4;
p2=1.01*p3;
p1=0.9-(P2*2+P3*5+P4*10+P5*20+P6*30+P7*40+P8*50+P9*100);
output;
end;
run;
proc print;
format p1-p9 15.10;
run;
***********Output**************;
Obs p1 p2 p3 p4 p5
1 0.8052877879 0.0003890779 0.0003852257 0.0003814115 0.0003776352
2 0.7055124264 0.0007989553 0.0007910448 0.0007832127 0.0007754581
3 0.6830936360 0.0008910517 0.0008822294 0.0008734945 0.0008648460
4 0.8278892692 0.0002962310 0.0002932980 0.0002903941 0.0002875189
5 0.8520305743 0.0001970585 0.0001951074 0.0001931756 0.0001912630
6 0.7097665158 0.0007814795 0.0007737420 0.0007660812 0.0007584963
7 0.8796691063 0.0000835193 0.0000826924 0.0000818737 0.0000810631
8 0.7083571856 0.0007872690 0.0007794742 0.0007717567 0.0007641155
9 0.7154038368 0.0007583213 0.0007508132 0.0007433794 0.0007360192
10 0.7005797705 0.0008192186 0.0008111075 0.0008030768 0.0007951255
Obs p6 p7 p8 p9 i
1 0.0003738962 0.0003701943 0.0003665290 0.0003629000 1
2 0.0007677803 0.0007601785 0.0007526520 0.0007452000 2
3 0.0008562832 0.0008478051 0.0008394110 0.0008311000 3
4 0.0002846722 0.0002818536 0.0002790630 0.0002763000 4
5 0.0001893693 0.0001874944 0.0001856380 0.0001838000 5
6 0.0007509864 0.0007435509 0.0007361890 0.0007289000 6
7 0.0000802604 0.0000794658 0.0000786790 0.0000779000 7
8 0.0007565500 0.0007490594 0.0007416430 0.0007343000 8
9 0.0007287319 0.0007215167 0.0007143730 0.0007073000 9
10 0.0007872530 0.0007794584 0.0007717410 0.0007641000 10