碰到了一个难题,要用vb编程实现,这个叫难啊~~
eg:
5300+4600*x>=5200(1+x)
0.65+1.42*x=<1.08(1+x)
3.25+1.82*x=<2.63(1+x)
18.3+22.2*x=<20.91(1+x)
5.28+9.22*x=<7.60(1+x)
我要求出这个公式的范围。
当然上面只是个例子,原来公式如下:
for i=1 to 8
for j=1 to 8
core23(i,2)+x*core34(j,2)>=t_frl*(1+x)
core23(i,3)+x*core34(j,3)=<t_sf*(1+x)
core23(i,4)+x*core34(j,4)=<t_hf*(1+x)
core23(i,5)+x*core34(j,5)=<t_lf*(1+x)
core23(i,6)+x*core34(j,6)=<t_hff*(1+x)
上述t_frl,t_sf,t_hf,t_lf,t_hff都是变量,主要就是求x的表达公式。
做完还要求最小值呢,不过那布就算了,不知道有没有大神能做出来。
当然我用数学还是能解的,但用计算机就不好实现了,不知道有没有高手中的高手能给出计算代码,小弟强烈膜拜中.......

解决方案 »

  1.   

    core23(i,2)+x*core34(j,2)>=t_frl*(1+x)core23(i,2)+x*core34(j,2)>=t_frl + t_frl*xcore23(i,2) - t_frl >= t_frl*x - x*core34(j,2)core23(i,2) - t_frl >= (t_frl - core34(j,2)) * x(core23(i,2) - t_frl) / (t_frl - core34(j,2)) >= x (condition: (t_frl - core34(j,2)) <> 0)
      

  2.   

    2#的答案我之前就做出来了
    x=<(core23(i,2)-t_frl)/(t_frl-core45(j,2))
    x=<(t_sf-core23(i,3))/(core45(j,3)-t_sf)
    x=<(t_hf-core23(i,4))/(core45(j,4)-t_hf)
    x=<(t_lf-core23(i,5))/(core45(j,5)-t_lf)
    x=<(t_hhf-core23(i,6))/(core45(j,6)-t_hhf)
    但这种格式往下在继续判断把我绕晕了,因为做出来这个x的结果还要参与z=(b+ax)/(1+x)求最小值的运算
    其中a,b为常数变量。所以我想大家给我做出个判断的函数。
      

  3.   

    将z=(b+ax)/(1+x)变为z=a+(b-a)/(1+x),然后还要根据a、b的正负,值等情况决定X的值,判断肯定是繁琐了一点,但如果a,b的正负、取值有限制则会简单一点。
      

  4.   

    UPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUP
      

  5.   

    有没有b一定会小于a或一定大于a之类的前提?