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