2017-05-08 14 views
1

私はこのプログラミング言語に慣れていないので、いくつかの係数を計算するために1つの関数を実行するだけです。Mathematica多くの入力が必要です

f[x] = x^2 - 2 x + 2 
g[x] = x^3 - 2 x^2 - 2 x - 2 
f1 = Root[f[x], 1]; 
f2 = Root[f[x], 2]; 
g1 = Root[g[x], 1]; 
g2 = Root[g[x], 2]; 
g3 = Root[g[x], 3]; 

foo[rootList, alpha, beta] := 
(
    res = {}; 
    For[i = 1, i <= Length[rootList], i++, alphaI = rootList[[i]]; 
     For[j = 1, j <= Length[rootList], j++, betaJ = rootList[[j]]; 
      If[betaJ != beta, 
      (
       kor = Simplify [(alphaI - alpha)/(beta - betaJ)]; 
       res = Append[res, N[kor, 5]]; 
      ), 
      ] 
     ] 
    ] 
    Return[res]; 
) 
roots = [f1, f2, g1, g2, g3]; 
cs = foo[roots, f1, g1] 

コードのこの作品は、私は、このエラーを与える:

Syntax::tsntxi: "For[i=1,i<=Length[rootList],i++,alphaI=rootList[[i]];" is incomplete; more input is needed. 

そして、間違っているものを見ていません。私はmathematicaを使用しています。10.4

答えて

0

構文エラーを修正しています。

f[x_] := x^2 - 2 x + 2 
g[x_] := x^3 - 2 x^2 - 2 x - 2 
f1 = Root[f[x], 1]; 
f2 = Root[f[x], 2]; 
g1 = Root[g[x], 1]; 
g2 = Root[g[x], 2]; 
g3 = Root[g[x], 3]; 

foo[rootList_, alpha_, beta_] := 
(
    res = {}; 
    For[i = 1, i <= Length[rootList], i++, alphaI = rootList[[i]]; 
    For[j = 1, j <= Length[rootList], j++, betaJ = rootList[[j]]; 
    If[betaJ != beta, 
    (
     kor = Simplify[(alphaI - alpha)/(beta - betaJ)]; 
     res = Append[res, N[kor, 5]]; 
    ) 
    ] 
    ] 
    ]; 
    res 
) 
roots = {f1, f2, g1, g2, g3}; 
cs = foo[roots, f1, g1] 
関連する問題