永发信息网

用vb编程计算: x-x^3/3!+x^5/5-x^7/7!+…

答案:2  悬赏:10  手机版
解决时间 2021-11-29 11:00
用vb编程计算: x-x^3/3!+x^5/5-x^7/7!+…
最佳答案
这是sinx的泰勒展开式吧:

Private Sub Command1_Click()
Dim x As Double, k As Long, p As Long, n As Long, y1 As Double, y2 As Double, sum As Double

x = InputBox("请输入x值:", "输入", 1)
k = 1: p = 1: y1 = x: y2 = x: sum = x
Do
p = -p
y1 = y1 * x * x / (k + 1) / (k + 2)
sum = sum + y1 * p
k = k + 2
If Abs(Abs(y1) - Abs(y2)) < 0.0000000001 Then Exit Do
y2 = y1
n = n + 1
Loop Until n >= 1000
Print sum
End Sub追问可不可以给我讲一下嘛,拜托、追答这个让我怎么讲?从哪个角度,数学上的,算法上的,还是代码上的?追问算法上的,就是“y1 = y1 * x * x / (k + 1) / (k + 2) "
还有这个“ y1 = x: y2 = x: sum = x”是什么意思?追答sinx的泰勒展开式x-x^3/3!+x^5/5!-x^7/7!+…
x → (+1)×x^1÷1! ①
-x^3/3! → (-1)×x^3÷3! ②
+x^5/5! → (+1)×x^5÷5! ③
-x^7/7! → (-1)×x^7÷7! ④

2=1+1,3=1+2 3=1+2
4=3+1,5=3+2 5=3+2
6=5+1,7=5+2

②=①×x^2÷2÷3×(-1)
③=②×x^2÷4÷5×(-1)
④=③×x^2÷6÷7×(-1)

“k = 1: p = 1: y1 = x: y2 = x: sum = x”,只是用于初始化,跳过①的计算。

当你看到②怎么由①计算,③怎么由②计算,④怎么由③计算时,就可以看到这是一个迭代过程,即An+1=An×x^2÷(2×n)÷(2×n+1)×(-1)。而且(2×n)、(2×n+1)本身也可以进行迭代,即k = k + 2。
这样你应该就能理解“y1 = y1 * x * x / (k + 1) / (k + 2)”了吧。

我为什么要迭代呢?主要是减少计算量,加快计算速度。

Private Sub Command1_Click()
Dim x As Double, i As Long, n As Long, y As Double, y1 As Double, y2 As Double, sum As Double
Dim t As Double

x = InputBox("请输入x值:", "输入", 1)

't = Now: Print t
'传统
n = 3: y1 = x: y2 = x: sum = x
Do
y = 1
For i = 1 To n
y = y * i
Next i
y1 = x ^ n / y * IIf(n Mod 4 = 1, 1, -1)
sum = sum + y1

If Abs(y1 - y2) < 0.0000000001 Then Exit Do
y2 = y1
n = n + 2
Loop Until n >= 1000
Print sum
'Print "用时:" & CStr((CDbl(Now) - t) * 24 * 3600) & "秒"

't = Now: Print t
'迭代
n = 2: y1 = x: y2 = x: sum = x
Do
y1 = -y1 * x * x / n / (n + 1)
sum = sum + y1

If Abs(y1 - y2) < 0.0000000001 Then Exit Do
y2 = y1
n = n + 2
Loop Until n >= 1000
Print sum
'Print "用时:" & CStr((CDbl(Now) - t) * 24 * 3600) & "秒"
End Sub

如果不用误差来控制跳出Do循环而用n来控制跳出Do循环,你会发现n=171时传统法就Double类型溢出了...
全部回答
你的题化简是:X-X+X-X…追问才不是呢,你看清楚嘛。追答看哈源码追问我不懂嘛。
----
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
双富牌水位控制器
写心情不好诗句
佳能ip1188喷墨打印机打印页面无字是4么原因
想在花都学车,不知道哪个驾校好,那个驾校快
微软office专业版2013与微软office小型企业版
怎么样才能不让别人看到我已删的QQ聊天记录
南京中考在即。假如你是班长,要求与学生谈谈
黑历史都有哪些 许静婉真实年龄几岁谈过几个
我是一个善良的人阅读答案
31.18km是多少公里啊
大中桥怎么去啊,有知道地址的么
安康至汉中晚上几点车
she tell a lie again的tell加s吗?
2两进制是多少呀
QQ无法打开,一点就出对话框:C:\Program
推荐资讯
贼偷小说打一成语
一般360°全景影像配一个小屏幕是不是很不实
京东405网是不是骗人的
中航工业家用制氧机jh型号和zh型号的区别
相依为命造句
东庆海产南通店地址好找么,我有些事要过去,
怎样用藕做饺子馅
家里房间用木门好还是塑钢门
为什么删除我的口碑
如果父母双亡过十周年不回去算是不孝顺吗?
上海祥港龙图铝材有限公司怎么样?
军旗最后怎么算赢了,具体怎么背旗,有什么规
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?