【数字仙秘系列】一次元函数的交互性质
一次元函数族的更深的交互性质,主要研究等价无穷小之间的收敛速度差异,此博客留给我这种数感苦手。
所有比较均与x作为基底,且进行20步。
函数若有周期性,则所有比较均在同一周期内。
1、sinx与tanx
#include<stdio.h> #include<math.h> int main() { for(int i=20;i>=1;i--) { double t=i/20.0; printf("%lf %lf %lf %lf\n",fabs(t-tan(t)),fabs(t-sin(t)),fabs(t-tan(t))-fabs(t-sin(t)),fabs(t-tan(t))/fabs(t-sin(t))); } }
实验结果:
性质一:以x为标准,在距离原点相同距离之时tanx比sinx拥有更大的误差。
性质二:tanx的收敛速度快于sinx,当趋近于0时两者收敛速度达到无限接近状态。
性质三:以x为道标,tanx和sinx的收敛数值差达到近乎2倍的数值关系。
2、arcsinx与arctanx
#include<stdio.h> #include<math.h> int main() { for(int i=20;i>=1;i--) { double t=i/20.0; double x=atan(t); double y=asin(t); printf("%lf %lf %lf %lf %lf\n",t,fabs(t-x),fabs(t-y),fabs(t-y)-fabs(t-x),fabs(t-x)/fabs(t-y)); } }
性质一:在距离原点较远时arctanx小于arcsinx,距离原点较近时arctanx大于arcsinx,两函数交点位于x=0.8附近。
性质二:arcsinx的收敛速度快于arctanx,当趋近于0时两者收敛速度达到无限接近状态。
性质三:以x为道标,arctanx和arcsinx的收敛数值差达到近乎2倍的数值关系。
3、sinx与arcsinx
#include<stdio.h> #include<math.h> int main() { for(int i=20;i>=1;i--) { double t=i/20.0; double x=sin(t); double y=asin(t); printf("%lf %lf %lf %lf %lf\n",t,fabs(t-x),fabs(t-y),fabs(t-y)-fabs(t-x),fabs(t-x)/fabs(t-y)); } }
性质一:在距离原点相同距离时arcsinx大于sinx。
性质二:arcsinx的收敛速度快于sinx,当趋近于0时两者收敛速度达到无限接近状态,且他们收敛速度的收敛速度极快,从图片比较而言明显快于sinx与cosx之间、arcsinx与arccosx之间。
性质三:以x为道标,sinx和arcsinx的收敛速度的数值差达到近乎1倍的数值关系。
4、
使用ex和lnx代替上述公式。
#include<stdio.h> #include<math.h> int main() { for(int i=20;i>=1;i--) { double t=i/20.0; double e=2.718281828; double x=pow(e,t)-1; double y=log(t+1); printf("%lf %lf %lf %lf %lf\n",t,fabs(t-x),fabs(t-y),fabs(t-y)-fabs(t-x),fabs(t-x)/fabs(t-y)); } }
性质一:在距离原点相同距离时ex大于lnx,且始终处于大于状态。
性质二:收敛速度ex快于lnx,但两者收敛速度均一般,比三角函数差不少(有着数量级的差距= =)。
性质三:以x为道标,ex和lnx的收敛速度的数值差达到近乎1倍的数值关系。
性质四:两者收敛过程中数值的差异也收敛的较慢,到了第20组还有着0.00121的差距(和三角函数比有着数量级的差距)。
5、ln(x+1)与sinx
#include<stdio.h> #include<math.h> int main() { for(int i=20;i>=1;i--) { double t=i/20.0; double e=2.718281828; double x=sin(t); double y=log(t+1); printf("%lf %lf %lf %lf %lf\n",t,fabs(t-x),fabs(t-y),fabs(t-y)-fabs(t-x),fabs(t-x)/fabs(t-y)); } }
嗯?这么看lnx和sinx的收敛过程中数值差距竟然有种无穷小的感觉?可这两种是等价无穷小呀?难道不应该是趋近于一个非零常数嘛,现在把自变量再缩小几十倍试一试。
#include<stdio.h> #include<math.h> int main() { for(int i=10;i>=1;i--) { double t=i/100.0; double e=2.718281828; double x=sin(t); double y=log(t+1); printf("%lf %lf %lf %lf %lf\n",t,fabs(t-x),fabs(t-y),fabs(t-y)-fabs(t-x),fabs(t-x)/fabs(t-y)); } }
性质一:在距离原点相同距离时lnx大于sinx,且始终处于大于状态。
性质二:收敛速度sinx快于lnx,正如上述,lnx与ex和三角函数相比收敛速度实在是太慢了,可是他们仍然是等价无穷小,尽管从实验结果中的收敛速度来看他们根本不像是同一阶的无穷小。
总结
1、在一次元函数中三角函数的收敛速度最快,指数和对数收敛速度最慢。
2、不同弦的三角函数之间收敛速度呈倍数关系,相同弦的三角函数之间的收敛速度呈相同关系,指数和对数函数之间的收敛速度呈相同关系。
3、尽管是等价无穷小,但指数和对数函数相比三角函数收敛速度慢的就像不是同一阶无穷小一样,差距非常大。
DLC
在x趋近于0过程中的函数值比较
#include<stdio.h> #include<math.h> int main() { double e=2.718281828; double t=0.012; printf("t=%lf\n",t); printf("sin:%lf arcsin:%lf tan:%lf arctan:%lf ln:%lf ex:%lf\n",sin(t),asin(t),tan(t),atan(t),log(t+1),pow(e,t)-1); }
x=0.02时,大伙都还没收敛到标准值
x=0.012时,正弦族收敛到标准值
x=0.01时,正切族收敛到标准值
x=0.001时,ln收敛到标准值
x=0.0005时,均收敛到标准值