2017-05-08 65 views
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]