数学中国

 找回密码
 注册
搜索
热搜: 活动 交友 discuz
楼主: ysr

请问这个多项式是哪个三角函数的值?

[复制链接]
 楼主| 发表于 2021-3-27 13:34 | 显示全部楼层
修改了一下代码仍然不对,算不准确,迭代51次的结果:52359877559829887307710723054658381403286156656251有50位,用时0.5390625秒。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-27 13:59 | 显示全部楼层
改来改去,还是我的旧程序准确可靠,这个是我的旧程序的结果:
50000000000000000000000000000000000000000000000000有50位,用时0.28125秒.

旧代码如下:

Private Function jszhxian(sa As String, sd As String) As String
Dim s1
s1 = 1 & String(Val(sd), "0")
s2 = mbc2(Trim(sa), Trim(sa), Val(sd))
fs1 = -1
s3 = 3
Do While MBJC(zhengchuqy(MCC1(Trim(s1), jcjs(Val(s3)))), 1) >= 0
s1 = mbc2(Trim(s1), Trim(s2), Val(sd))

s = mpc3(Trim(s), tjfh(zhengchuqy(MCC1(Trim(s1), jcjs(Val(s3)))), Val(fs1)))

s3 = Val(Val(s3) + 2)

fs1 = Val(-1) * Val(fs1)


Loop

jszhxian = mbc2(Trim(sa), mpc3(Val(1) & String(Val(sd), "0"), Trim(s)), Val(sd))
End Function
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-27 14:09 | 显示全部楼层
还琢磨琢磨前面那个迭代公式怎么计算吧,是复数域中的计算,请老师指点!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-28 15:02 | 显示全部楼层
sinx=(e^ix-e^-ix)/(2i),cosx=(e^ix+e^-ix)/2.\叫做欧拉公式.将e^ix=cosx+isinx中的x取作π就得到:e^iπ+1=0.这个也叫做欧拉公式
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-28 22:29 | 显示全部楼层
复数除法定义:满足(c+di)(x+yi)=(a+bi)的复数x+yi(x,y∈R)叫复数a+bi除以复数c+di的商。

运算方法:可以把除法换算成乘法做,在分子分母同时乘上分母的共轭.。所谓共轭你可以理解为加减号的变换,互为共轭的两个复数相乘是个实常数。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-28 22:44 | 显示全部楼层
复数除法:(a+bi)/(c+di)=((a+bi)/(c+di))*((c-di)/(c-di))=((ac+bd)/(c^2+d^2))+((bc-ad)/(c^2+d^2))i
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-28 22:53 | 显示全部楼层
棣莫佛定理:对于复数z=r(cosθ+isinθ),有z的n次幂为:z^n=r^n*(cosnθ+isinnθ).
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-28 22:56 | 显示全部楼层
这个迭代法会用到这么多公式,每次迭代都会用到多种公式,都是大数运算,即使迭代次数很少,速度也不会太快,消耗时间长,这个怕是不快。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-29 13:55 | 显示全部楼层
看来无法提高正余弦高精度值的计算速度,无法提高利用快速傅里叶变换的大数乘法的速度,准备用分治法和快速傅里叶变换结合的方法,来提高大数乘法的速度。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-29 17:15 | 显示全部楼层
50000000000000000000000000000000000000000000000001有50位,用时0.1210938秒。
4999999999999999999999999有25位,用时0.015625秒。
500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000有150位,用时2.738281秒。

把我的模仿手工计算的大数乘法程序改成4位一组的,居然快了一点。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|数学中国 ( 京ICP备05040119号 )

GMT+8, 2024-4-18 20:55 , Processed in 0.067382 second(s), 14 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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