SIN,COS倍角式 しばっち 2008/02/08 20:45:02 ├EXTERNALSUBSINEX(F,COSA(),SINA(,),COSB()... しばっち 2008/02/08 20:45:37 │└!チェビシェフの多項式Tn(x)からn倍角の公... 山中和義 2008/02/09 15:09:21 │ └山中和義さんご返事ありがとうございます。 しばっち 2008/02/10 17:34:35 (修正1回) └!tanのn倍角の公式 山中和義 2008/02/10 17:34:41 (修正1回)
Re: SIN,COS倍角式 |
返事を書く ノートメニュー |
山中和義 <drdlxujciw> 2008/02/10 17:34:41 ** この記事は1回修正されてます | |
!tanのn倍角の公式
!1変数Xの多項式(N次)のCi*X^iの係数を、配列C(i)=Ciで表す。 OPTION BASE 0 LET N=20 !次数 !演算関連 SUB poly_add(n,a(),b(), x()) !加算x=a+b MAT x=a+b END SUB SUB poly_sub(n,a(),b(), x()) !減算x=a-b MAT x=a-b END SUB SUB poly_mul(n,a(),b(), x()) !乗算x=a*b DIM xx(100) MAT xx=ZER(2*n) FOR i=n TO 0 STEP -1 FOR j=n TO 0 STEP -1 LET xx(i+j)=xx(i+j)+a(i)*b(j) !分配する NEXT j NEXT i MAT x=xx !copy it END SUB !表示関連 SUB disp_poly(n,a(),x$) !多項式を表示する a(X)=ΣAkX^k=AnX^n+An-1X^n-1+…+A1X+A0 CALL disp_mono(n,a(n),x$) FOR i=n-1 TO 0 STEP -1 !次数の降順 IF a(i)>0 THEN PRINT "+"; CALL disp_mono(i,a(i),x$) NEXT i END SUB SUB disp_mono(k,ak,x$) !単項式を表示する AkX^k IF ak=0 THEN !係数が0なら ELSE IF k<>0 THEN !x^nで IF ak=1 THEN !係数が1なら ELSEIF ak=-1 THEN !係数が−1なら PRINT "-"; ELSE PRINT STR$(ak); END IF END IF IF k=0 THEN !次数が0なら PRINT STR$(ak); ELSEIF k=1 THEN !次数が1なら PRINT x$; ELSE PRINT x$;"^";STR$(k); END IF END IF END SUB !その他 DIM c1(2*N) LET c1(0)=1 !定数1 !------------------------------ ここまでがサブルーチン |
└つづき 山中和義 2008/02/10 17:35:22 (修正1回)