明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2205|回复: 9

有谁可以解 sin(x)/x=C的方程,c为已知数值。

[复制链接]
发表于 2003-8-20 17:59:00 | 显示全部楼层 |阅读模式
希望不用数值代入测试是否逼近的方法。
发表于 2003-8-21 09:14:00 | 显示全部楼层

如果你对速度和精度要求不高的话,可以试试这段代码

const PI=3.14159265
Function Sinx_c(c As Double, Prec As Double)  'Prec为精度,例如0.00001
  Dim x As Double
  For x = 0 To PI Step Prec
    If Sin(x)/x - c > -Prec And Sin(x)/x - c <rec Then
      Sinx_c = x
      Exit Function
    End If
  Next x
End Function
 楼主| 发表于 2003-8-21 18:59:00 | 显示全部楼层
sin(x)的麦克劳林展开式为:x/1!-x^3/3!+x^5/5!-x^7/7!……(-1)^(2n-1)*x^(2n-1)/(2n-1)!
发表于 2003-8-29 13:25:00 | 显示全部楼层
我写的:
Sub ddARC()
'本程序能精确到小数点9位
Dim x, xx, c, fx, flx As Double
c = ThisDrawing.Utility.GetReal(" 请输入c的值:")
x = 0.000001
xx = x
Do
x = xx
fx = Sin(x) / x
flx = 1 - Sin(x) / x / x
xx = x - fx / flx
Loop While Abs(xx - x) > 0.000000001
ThisDrawing.Utility.Prompt "x= " & x
ZoomExtents
End Sub
发表于 2004-1-12 22:47:00 | 显示全部楼层
好象只有叠代法
发表于 2004-1-12 22:54:00 | 显示全部楼层
赞成2楼方法,一个个去试,是一元方程都能解
发表于 2004-1-12 22:56:00 | 显示全部楼层
3、4楼的程序都是错的
发表于 2004-1-13 00:11:00 | 显示全部楼层
赞成莫版主的说法,我在学校学数值分析,书中说这类问题最好用迭代法求解。
发表于 2004-1-13 14:12:00 | 显示全部楼层
本帖最后由 作者 于 2004-1-13 19:42:51 编辑

在莫名斑竹的指点下,我改正了4楼的代码.

  1. Sub uhku()
  2. '本程序能精确到小数点9位
  3. Dim x, xx, c, fx, flx As Double
  4. c = ThisDrawing.Utility.GetReal(" 请输入c的值:")
  5. x = 1
  6. xx = x
  7. Do
  8. x = xx
  9. fx = Sin(x) - c * x
  10. flx = Cos(x) - c
  11. xx = x - fx / flx
  12. Loop While Abs(xx - x) > 0.000000001
  13. ThisDrawing.Utility.Prompt "x= " & x
  14. End Sub



哦,我画出了y=sinx/x-c的曲线,c小于1时才有解(两解),还没仔细分析!












本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2004-1-13 16:33:00 | 显示全部楼层
莫名发表于2004-1-12 22:56:003、4楼的程序都是错的



3楼的好象不是程序,是一个数学公式而已。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-28 09:46 , Processed in 0.185908 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表