|
|
发表于 2009-11-26 08:51:36
|
显示全部楼层
来自: 中国广东深圳
给楼主一份反渐开线函数的C++源代码:
4 W9 m! G% Y8 f" h0 n
% @# f k4 {- F9 m4 D9 G. D t//自定义反渐开线函数
6 A- m5 U; Z3 X( d Xdouble __fastcall TForm_Inv::ArcInv(double x)
! ]) Q+ s/ ^: n; r{
; U0 u, H$ c$ M$ g+ a const double MaxError=0.0000000001, MaxCount=100000;4 ^8 \! C. p- F
double x1,x2,Error;
, I) c% [3 b; G3 Y int num;
" V7 c7 y/ b5 e, t' d x1 = 3*x;( U# O6 {1 e0 v- A, |# E
x1 = exp(log10(x1)/3);
: U# t! i! j. `$ V; A& b8 u! Q Error =1;
2 W. j+ C5 N0 J# c* q. a num = 0;# x# s% I1 t* F, v5 G& `0 I
while ((Error > MaxError) && (num < MaxCount))$ y5 g, p3 H* Y0 n3 S
{* Y# n5 u, w% r8 B
x2 = acos(sin(x1)/(x+x1));
9 ^1 v6 \/ L* U v6 @# M Error = fabs(x2 -x1);/ G2 |$ ^' [) y8 F. \
num++;
2 s' h5 f o& a, y5 p3 A x1 = x2;, {! K: N' [% Y1 ~
}
4 `/ j/ k0 w! D2 {3 u return(x1);+ z; D. y6 w$ |) `4 O3 i
}
; c. z) ?, \3 G7 w****************
. {! B) m) _* N. ~- u Q程序运行界面参考附图! |
|