Mat*_*etz 5 math wolfram-mathematica
我对以下代码有些困难:
Lagrange[list_] :=
Module[{points = list, length, k, j, m, x, g},
length = Length[points];
k = length - 1;
f = Sum[points[[j + 1,2]]*Product[If[j != m, (x - points[[m + 1,1]])/
(points[[j + 1,1]] - points[[m + 1,1]]), 1], {m, 0, k}], {j, 0, k}];
g = FullSimplify[Expand[f]];
Return[f]]
Run Code Online (Sandbox Code Playgroud)
我得到的输出是:
Out[101]= 0. -1.85698 (-1.5+x$26810) (-0.75+x$26810) (0. +x$26810) (0.75+x$26810)
+0.490717 (-1.5+x$26810) (-0.75+x$26810) (0. +x$26810) (1.5 +x$26810)
-0.490717 (-1.5+x$26810) (0. +x$26810) (0.75 +x$26810) (1.5 +x$26810)
+1.85698 (-0.75+x$26810) (0. +x$26810) (0.75 +x$26810) (1.5 +x$26810)
Run Code Online (Sandbox Code Playgroud)
我关注的是这些"$"符号.我不知道他们的意思,我找不到他们的文档,他们正在阻止这个多项式的绘图.
的$在输出是从由的词法作用域生成的唯一变量Module(见的更多信息部分数学/ REF /模块).这就是为什么我让我的LagrangePoly函数接受多项式所要符号的原因.我用过LagrangePoly[list_, var_:x],默认为全局符号x.
问题的一个简单例子是
In[1]:= Module[{x}, x]
Out[1]= x$583
Run Code Online (Sandbox Code Playgroud)
"local"变量中的数字x$nnn来自全局$ModuleNumber.
如果您不理解这一点,那么您应该阅读教程Blocks与Modules相比较.