方程一:Y= aX/[1+(a-1)X]
方程二:Y(n+1)=RXn/(1+R)+Xd/(1+R)
已知:Xd,a,R,Xq为常数。
现:用Y1=Xd,代入方程一求的X1, 再代入方程二求出Y2
再代入方程一求X2,......直到 Xn<=Xq
求的n的值~~
有两位大哥给的程序是:
Private Sub Command1_Click()
Dim a As Single, R As Single, Xd As Single, Xq As Single
Dim n As Integer, X() As Single, Y() As Single
Xd = 0.01: a = 3: R = 4: Xq = 0.42
n = 1
Do
ReDim X(n + 1)
ReDim Y(n + 1)
Y(n) = Xd
X(n) = Y(n) / (a - (a - 1) * Y(n))
Y(n + 1) = R * X(n) / (1 + R) + Xd / (1 + R)
Y(n) = Y(n + 1)
n = n + 1
Loop Until X(n) <= Xq
Print "n="; n
End Sub和
Private Sub Command1_Click()
Dim i As Integer
Dim X() As Double, Y() As Double
Dim Xd As Double, a As Long, R As Long, Xq As Double
Xd = 0.01: a = 3: R = 4: Xq = 0.42
ReDim Preserve X(0) As Double
ReDim Preserve Y(0) As Double
Y(0) = Xd
X(0) = -Y(0) / ((a + 1) * Y(0) - a)
Do
i = i + 1
ReDim Preserve X(i) As Double
ReDim Preserve Y(i) As Double
Y(i) = X(i - 1) * R / (1 + R) + Xd / (1 + R)
X(i) = -Y(i) / ((a + 1) * Y(i) - a)
Loop Until X(i) <= Xq
Print "i=" & i
End Sub可是不管怎么改变a,R ,Xd,Xq的值
结果总等于n=2
好象迭代没有运行~~~
方程二:Y(n+1)=RXn/(1+R)+Xd/(1+R)
已知:Xd,a,R,Xq为常数。
现:用Y1=Xd,代入方程一求的X1, 再代入方程二求出Y2
再代入方程一求X2,......直到 Xn<=Xq
求的n的值~~
有两位大哥给的程序是:
Private Sub Command1_Click()
Dim a As Single, R As Single, Xd As Single, Xq As Single
Dim n As Integer, X() As Single, Y() As Single
Xd = 0.01: a = 3: R = 4: Xq = 0.42
n = 1
Do
ReDim X(n + 1)
ReDim Y(n + 1)
Y(n) = Xd
X(n) = Y(n) / (a - (a - 1) * Y(n))
Y(n + 1) = R * X(n) / (1 + R) + Xd / (1 + R)
Y(n) = Y(n + 1)
n = n + 1
Loop Until X(n) <= Xq
Print "n="; n
End Sub和
Private Sub Command1_Click()
Dim i As Integer
Dim X() As Double, Y() As Double
Dim Xd As Double, a As Long, R As Long, Xq As Double
Xd = 0.01: a = 3: R = 4: Xq = 0.42
ReDim Preserve X(0) As Double
ReDim Preserve Y(0) As Double
Y(0) = Xd
X(0) = -Y(0) / ((a + 1) * Y(0) - a)
Do
i = i + 1
ReDim Preserve X(i) As Double
ReDim Preserve Y(i) As Double
Y(i) = X(i - 1) * R / (1 + R) + Xd / (1 + R)
X(i) = -Y(i) / ((a + 1) * Y(i) - a)
Loop Until X(i) <= Xq
Print "i=" & i
End Sub可是不管怎么改变a,R ,Xd,Xq的值
结果总等于n=2
好象迭代没有运行~~~
解决方案 »
- 发送邮件,在线等待!
- QQ自动登陆器(命令行参数的那种)的源代码公布
- VB中immediate调试问题
- 怎麼獲得當前程序的路徑?
- 真正的高手看一下:关于Installshield使MediaPlayer无法工作的问题。
- 若sql server有一存储过程,内容为二个select ,现用rs=commnad.execute调用,但想体现第一个select内容,该如何.
- vb 与excel
- 如何动态控制菜单显示
- 谁有VB调用ACCESS数据库的代码,最简单的就行.
- 在VB中如何实现将一个窗体,在没有下一个事件发生前,永远浮在其他窗体上面,其他应用程序也不能运行.谢谢!!!!
- VB中怎么实现?
- VB监控网址的问题。
Private Sub Command1_Click()
Dim a As Single, R As Single, Xd As Single, Xq As Single
Dim n As Double, X() As Single, Y() As Single
Xd = 0.01: a = 3: R = 4: Xq = 0.00003
ReDim Preserve Y(1)
Y(1) = Xd
n = 0
Do
n = n + 1
If n > 10 ^ 5 Then
MsgBox "这样的n值过大,程序将崩溃,请检查常数值"
Exit Do
End If
ReDim Preserve X(n + 1)
ReDim Preserve Y(n + 1)
X(n) = Y(n) / (a - (a - 1) * Y(n))
Y(n + 1) = R * X(n) / (1 + R) + Xd / (1 + R)
Loop Until X(n) <= Xq
Print "n="; n
End Sub
n = n + 1
Loop Until X(n) <= Xq
第一次循环后n=2,此时没有处理X(2),X(2)=0,所以只要Xq>=0,x(n)<=0一直成立,自然只执行一次循环就退出do循环了,所以,只要你设置的Xq>=0,就会一直输出n=2
可以解出结果,按你给的常数Xd = 0.01: a = 3: R = 4: Xq = 0.042得出n=1,修改为
Xd = 0.01: a = 3: R = 4: Xq = 0.00003后得出的n=2