| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 675 人关注过本帖
标题:想在 Excel 中自带的VB 编写一个小计算公式求解方程
只看楼主 加入收藏
chlgk
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2010-9-29
结帖率:66.67%
收藏
 问题点数:0 回复次数:2 
想在 Excel 中自带的VB 编写一个小计算公式求解方程
Function r(r1, r2, r3, a)
For j = 2 To 1000
x = r1 * (1 - 0.001 * j)
y = 2 * x * (r1 - r2) + r1 * r1 - r2 * r2 + (r1 + r2) * (r1 + r2) - 2 * (r1 + r2) * Cos(a) * (r1 + x * (r1 - r3) / (r1 + r3)) - 2 * (r1 + r2) * Sin(a) * 2 / (r1 + r3) * Sqr(r1 * r3) * Sqr(x ^ 2 + x * (r1 + r3))
If y < 0 Then Next j
x = r1 * (1 - 0.001 * j)
y = 2 * x * (r1 - r2) + r1 * r1 - r2 * r2 + (r1 + r2) * (r1 + r2) - 2 * (r1 + r2) * Cos(a) * (r1 + x * (r1 - r3) / (r1 + r3)) - 2 * (r1 + r2) * Sin(a) * 2 / (r1 + r3) * Sqr(r1 * r3) * Sqr(x ^ 2 + x * (r1 + r3))
If y > 0 Then Exit For
End If
End If
End Function

主要想求求解以下方程:
图片附件: 游客没有浏览图片的权限,请 登录注册

R1,R2,R3,a  都是已知量,就是求r.

 请哪位高手帮忙,万分感谢。
搜索更多相关主题的帖子: Excel 
2015-05-15 22:55
lianyicq
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:26
帖 子:737
专家分:3488
注 册:2013-1-26
收藏
得分:0 
到底是求r还是f(r)?
是想用试探法来求?但是不知道函数值f(r)无法试探。阿尔法也未知?r有没有取值范围。
...
只想到笨办法
程序代码:
Function r(R1 As Single, R2 As Single, R3 As Single, a As Single, StepJ As Single, ErrJ As Single) As Single
  Dim temp As Single
  For j = MinJ To MaxJ Step StepJ
    temp = 2 * j * (R1 - R2) + R1 ^ 2 - R2 ^ 2 + (R1 + R2) ^ 2 - 2 * (R1 + R2) * Cos(a * (R1 + j * (R1 - R3) / (R1 + R3))) - 2 * (R1 + R2) * Sin(a * 2 * Sqr(R1 * R3) * Sqr(j ^ 2 + j * (R1 + R3)) / (R1 + R3))
    If Abs(temp) < ErrJ Then
      r = j
      Exit For
    End If
  Next
End Function
看看能不能达到目的
...
 EXCEL自带用迭代法求解超越方程的功能,用到了数据工具里的假设分析,可以试试。
如果用代码写迭代算法
图片附件: 游客没有浏览图片的权限,请 登录注册

[attach]80337[/attach]
代码按笨办法的方式写。
写了一个小例子计算y=cosx-x的解
程序代码:
'Example for y=cos-x
Option Explicit
Private Sub Command1_Click()
  Dim Y As Single, DY As Single
  Dim ERR As Single
  Dim times As Long
  Dim XK As Single
  times = 0
  Y = 1 'Ensure Y>ERR in the first time
  ERR = 0.0001
  XK = Val(Text3.Text)
  While (Abs(Y) > ERR)
    If times <> 0 Then XK = XK - Y / DY
    Y = Cos(XK) - XK
    DY = -Sin(XK) - 1
    times = times + 1
  Wend
  Form1.Caption = Y & " " & times & " " & XK

End Sub
把公式换了试试

[ 本帖最后由 lianyicq 于 2015-5-19 09:28 编辑 ]

大开眼界
2015-05-18 08:48
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:0 
楼主是要求r值,因为f(r)=0.

能编个毛线衣吗?
2015-05-18 08:50
快速回复:想在 Excel 中自带的VB 编写一个小计算公式求解方程
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.042096 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved