24小时热门版块排行榜    

查看: 419  |  回复: 2

蓝莓果汁11

金虫 (正式写手)

[求助] 用VB编程解方程,代码如下,运行不出来,有大神会VB吗?帮忙指导下,非常感谢! 已有1人参与

Private Sub Command1_Click()
Dim a As Double
H = 42200
m = 56
n = 4
R = 8.314
T = 298.15
a = 0
Do
a = a + 0.00001
Loop Until a * n * H - R * T * ((m + n + a * n) * ln(m + n + a * n) - 2 * a * n * ln(a * n) - (n - n * a) * ln(n - n * a) - (n + m) * ln(n + m) + n * ln(n)) = 0
Text1.Text = a
End Sub
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yangxphewj

铁杆木虫 (正式写手)

【答案】应助回帖

1. Log(N) 以e为底的自然对数,用ln肯定是出函数未定义的错误,应该将ln全部改为Log。
2. Log(n + m), Log(n)是常数,为什么不直接写出数字。
3. 程序的本意是求出a值,但迭代过程没有设定最高迭代次数,一旦不收敛就会陷入死循环。
2楼2015-07-29 05:38:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yangxphewj

铁杆木虫 (正式写手)

【答案】应助回帖

帮你改了一下,计算出a=2.11000000000608E-03,程序如下:
    Dim a As Double
    H = 42200
    m = 56
    n = 4
    R = 8.314
    T = 298.15
    a = 0.1
    Do
        a = a - 0.00001
        b = a * n * H - R * T * ((m + n + a * n) * Log(m + n + a * n) - 2 * a * n * Log(a * n) - (n - n * a) * Log(n - n * a) - (n + m) * Log(n + m) + n * Log(n))
        Debug.Print a, b
    Loop Until b < 0.0000001
    Text1.Text = a
3楼2015-07-29 05:49:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 蓝莓果汁11 的主题更新
信息提示
请填处理意见