新しく発言する  EXIT  インデックスへ
SIN,COS倍角式

  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
PRINT
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回)

 インデックスへ  EXIT
新規発言を反映させるにはブラウザの更新ボタンを押してください。