| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 407 人关注过本帖
标题:超越方程求解
只看楼主 加入收藏
fengyouliang
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-11-20
结帖率:0
收藏
已结贴  问题点数:20 回复次数:3 
超越方程求解
大侠们,帮帮忙吧。

(56.08479352*sin(α))/(0.840416116+sin(α))=(56.08479352-55.9063899*cos(α))/(1-sin(0.572745737-α))

角度单位为弧度。
搜索更多相关主题的帖子: 超越 单位 
2012-11-20 15:49
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:20 
Option Explicit

'四个需要确定的值。
'注意,这四个值也可以使用变量的形式 置入,此处是示例
Const 步进 = 0.0001           '每次测试的变化值
Const 范围1 = 1               '在那个范围内进行测试,不同的范围可能有不同的答案
Const 范围2 = 2
Const 精度 = 0.00001          '达到某个精度认为是所需要的值

'这是最简单的 循环算法,还有 其它算法 ,有些算法 描述比较简单,但写起来比较复杂。
'如,有某个区间,计算二个端点,然后根据精度,决定移动其中一个端点,继续计算,再继续移动,直到接近精度为止。

Private Sub Command1_Click()
'(56.08479352*sin(α))/(0.840416116+sin(α))=(56.08479352-55.9063899*cos(α))/(1-sin(0.572745737-α))


Dim i As Double
Dim j1 As Double, j2 As Double
Dim z1 As Double, ij1 As Double


z1 = 精度

'循环计算,
For i = 范围1 To 范围2 Step 步进
j1 = (56.08479352 * Sin(i)) / (0.840416116 + Sin(i))
j2 = (56.08479352 - 55.9063899 * Cos(i)) / (1 - Sin(0.572745737 - i))
   
    '只保留一个最接近的,也可以输出所有达到精度的值
    If Abs(j1 - j2) < z1 Then
        z1 = j1 - j2
        ij1 = i
    End If
Next i

'debug
Print ij1; z1, 精度

'结果
If ij1 = 0 Then
    MsgBox "在指定的区间未找到解"
Else
    MsgBox "在指定的敬意找到的最接近的解:" & ij1
End If

End Sub

1.57079599995304

授人于鱼,不如授人于渔
早已停用QQ了
2012-11-21 16:38
fengyouliang
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-11-20
收藏
得分:0 
回复 2楼 风吹过b
大侠,结果不对啊
2012-11-23 11:48
fengyouliang
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-11-20
收藏
得分:0 
版主,在0-1间取值,结果是多少呢?
2012-11-30 14:34
快速回复:超越方程求解
数据加载中...
 
   



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

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