多項式の値

 投稿者:山中和義  投稿日:2012年 8月11日(土)19時33分45秒
  問題
x=-1+√(-3)のとき、f(x)=x^4+x^3+5x^2+2x+20 の値を求めよ。

●近似解

OPTION ARITHMETIC COMPLEX !複素数モード
LET x=-1+SQR(-3)
PRINT x^4+x^3+5*x^2+2*x+20
END

実行結果
( 8 -8.88178419700125E-16)


●厳密解

解法1 f(-1+√(-3))を計算する。
 x=-1+√(-3)より、x^2={-1+√(-3)}^2=(-1)^2+2*(-1)*√(-3)+{√(-3)}^2=-2-2√(-3)
 x^3=x*x^2= …、x^4=(x^2)^2= … とするのは、計算量が多くなる。

そこで、

その1 直接計算する、f(α)の値


DATA 4 !最高次数
DATA 1,1,5,2,20 !f(x)=x^4+x^3+5x^2+2x+20

LET A=-1 !x=A+K√Bのとき
LET K=1
LET B=-3

READ N
DIM P(N+1)
MAT READ P
MAT PRINT P; !debug


!補題 {A+K√B}^E=N+M√B を計算する。
!答え
! 漸化式で表すことを考える。
! べき乗がEまでの値をA[E]+K[E]√Bとすると、
! A[E+1]+K[E+1]√B={A+K√B}{A[E]+K[E]√B}=(A*A[E]+K*B*K[E])+(K*A[E]+A*K[E])√B
! したがって、
!  A[E+1]=A*A[E]+K*B*K[E]
!  K[E+1]=K*A[E]+A*K[E]
! の連立漸化式を得る。

LET S=0 !s+t√B
LET T=0
FOR i=1 TO N+1 !ホーナー法 f(x)=((((0+P[1])x+P[2])x+P[3])x+P[4])x+P[5]
   LET W=A*S+K*B*T + P(i) !{ … }x+P[i]
   LET T=K*S+A*T
   LET S=W
   PRINT S;"+ ";T;"√";STR$(B)
NEXT i

END



その2 組立除法による、f(x)をx-αで割ったときの商と余り


DATA 4 !最高次数
DATA 1,1,5,2,20 !f(x)=x^4+x^3+5x^2+2x+20

LET A=-1 !x=A+K√Bのとき
LET K=1
LET B=-3

READ N
DIM P(N+1)
MAT READ P
MAT PRINT P; !debug


! 1   1       5  2  20  │ -1+√-3  ← A+K√B
!    -1+√-3  … … …  └─────
!─────────────
! 1  √-3     … … …  ← s+t√B

LET S=P(1) !s+t√B
LET T=0
FOR i=2 TO N+1 !組立除法
   LET W=P(i) + A*S+K*B*T !{s+t√B}{A+K√B}=As+At√B+Ks√B-KBt
   LET T=K*S+A*T
   LET S=W
   PRINT S;"+ ";T;"√";STR$(B)
NEXT i

END



よくみると、同じ算出方法である。
 

戻る