zeroieme 发表于 2014-5-4 07:51:56

指定角度求符合运算规则的三角函数有理近似

指定了某角度 如30°
求三角函数的有理近似,Sin、Cos、Tan。要符合Sin2+Cos2=1……的运算规则。
其实就是求对应那组勾股数


级数跟连分数展开好象不能保证三角函数相互关系

补充内容 (2016-1-10 19:18):
假如推广到N维呢?

mathe 发表于 2014-5-4 12:06:23

很简单,对于cos(x)和sin(x),先给出tan(x/2)的连分数逼近然后用tan(x/2)表示sin(x)和cos(x)即可

wayne 发表于 2014-5-4 12:58:22

mathe的方法很棒!
所有的三角函数值都是tan(t/2)的有理表达。所以 你只需算出tan(t/2)的值来,然后用近似分数替代tan(t/2)回代到sin,cos的表达式 即可。

wayne 发表于 2014-5-4 13:01:43

简单写了个代码,计算30度的正弦,余弦值对应的近似分数表达:
n=20;Table[{2t,1-t^2}/(1+t^2),{t,Convergents,n]}]
结果:
{0,1}
{3/5,4/5}
{8/17,15/17}
{33/65,56/65}
{120/241,209/241}
{451/901,780/901}
{1680/3361,2911/3361}
{6273/12545,10864/12545}
{23408/46817,40545/46817}
{87363/174725,151316/174725}
{326040/652081,564719/652081}
{1216801/2433601,2107560/2433601}
{4541160/9082321,7865521/9082321}
{16947843/33895685,29354524/33895685}
{63250208/126500417,109552575/126500417}
{236052993/472105985,408855776/472105985}
{880961760/1761923521,1525870529/1761923521}
{3287794051/6575588101,5694626340/6575588101}
{12270214440/24540428881,21252634831/24540428881}
{45793063713/91586127425,79315912984/91586127425}

数学星空 发表于 2014-5-4 19:23:01

我给一个符号表示:

1.   \(\sin(x)=\frac{x^4-60x^2+144}{x^4+12x^2+144}\)
      
   \(\cos(x)=\frac{ -12(x^2-12)x}{x^4+12x^2+144}\)


2.\(\sin(x)=\frac{24(x^2-10)x(x^2-60)}{x^6+24x^4+720x^2+14400}\)
   
   \(\cos(x)=\frac{-(x^6-264x^4+6480x^2-14400)}{x^6+24x^4+720x^2+14400}\)


3.   \(\sin(x)=\frac{x^8-760x^6+69360x^4-1310400x^2+2822400}{x^8+40x^6+2160x^4+100800x^2+2822400}\)
   
      \(\cos(x)=\frac{-40(x^4-180x^2+1680)x(x^2-42)}{x^8+40x^6+2160x^4+100800x^2+2822400}\)


4.\(\sin(x)=\frac{60(x^4-112x^2+1008)x(x^4-420x^2+15120)}{x^10+60x^8+5040x^6+403200x^4+25401600x^2+914457600}\)
   
   \( \cos(x)=\frac{-(x^{10}-1740x^8+408240x^6-25804800x^4+431827200x^2-914457600)}{x^{10}+60x^8+5040x^6+403200x^4+25401600x^2+914457600}\)


5.\(\sin(x)=\frac{(x^{12}-3444x^{10}+1703520x^8-257886720x^6+13539052800x^4-211239705600x^2+442597478400)}{x^12+84x^{10}+10080x^8+1209600x^6+127008000x^4+10059033600x^2+442597478400}\)

      \(\cos(x)=\frac{-(84(x^6-840x^4+75600x^2-665280))x(x^4-240x^2+7920)}{x^{12}+84x^{10}+10080x^8+1209600x^6+127008000x^4+10059033600x^2+442597478400}\)



wayne 发表于 2014-5-4 20:02:53

@数学星空
你这个符号表达怎么弄出来的。

=====
其实,连分数展开最终都可以用递推公式表达的。
对于本题,就是$\sqrt{3}$的表达,对应的递推公式是 $a_{n+4} = 4*a_{n+2} - a_n$,初始数是${0,1,1,3}$,
比如: 0,1,1,3,4,11,15,41,56,153,209,571,780,2131,2911,7953,10864,29681,40545,11077, ....
$\tan 15^\circ \approxa_{n}/a_{n+2} \approx 1/3\approx 1/4\approx 3/11\approx 4/15\approx 11/41\approx 15/56\approx 41/153\approx 56/209\approx 153/571\approx 209/780$

n=10;
a=LinearRecurrence[{0,4,0,-1},{0,1,1,3},n+2];
Table[{(2a[]a[])/(a[]^2+a[]^2),(a[]^2-a[]^2)/(a[]^2+a[]^2)},{i,n}]
该代码得到的答案跟4楼完全一致

zeroieme 发表于 2016-1-10 19:22:46

假如推广到N维呢?
把{$x_1$,$x_2$……$x_n$}的单位向量:{Cos α1,Cos α2,……,Cos α2}有理化。
页: [1]
查看完整版本: 指定角度求符合运算规则的三角函数有理近似