Mathematica指数方程(基础代数)

Mathematica指数方程(基础代数),math,wolfram-mathematica,calculus,Math,Wolfram Mathematica,Calculus,我目前正在从事一个Mathematica项目,计算黎曼和,并将其放入表格中。打印行号(间隔)时遇到问题。(行号也是辅助函数的参数)。我不知道如何访问Mathematica表中迭代器的索引,所以我尝试使用函数参数计算它们 这是一个我想打印的例子,对于{0,1}范围内x^2的积分,有10个细分 tableRiemannSums[#^2 &, {0, 1}, 10] 我需要根据当前迭代的值,计算出每个迭代的索引是什么 细分k,积分{a,b}的范围和细分数n。下面是主要代码 tableRie

我目前正在从事一个Mathematica项目,计算黎曼和,并将其放入表格中。打印行号(间隔)时遇到问题。(行号也是辅助函数的参数)。我不知道如何访问Mathematica表中迭代器的索引,所以我尝试使用函数参数计算它们

这是一个我想打印的例子,对于{0,1}范围内x^2的积分,有10个细分

tableRiemannSums[#^2 &, {0, 1}, 10]

我需要根据当前迭代的值,计算出每个迭代的索引是什么 细分k,积分{a,b}的范围和细分数n。下面是主要代码

tableRiemannSums[fct_, {a_, b_}, n_] := Table[{'insert index here', 
leftRiemannSum[fct, {a, b}, 'insert index here'], 
rightRiemannSum[fct, {a, b}, 'insert index here']}, 
{k, a, b - (N[b - a]/n), N[b - a]/n}]
在上面的方程式中

{k, a, b - (N[b - a]/n), N[b - a]/n}]
表示该表的范围为k,因为k从“a”到“b-((b-a)/n)”,以大小(b-a)/n为步长

在我的代码说“在这里插入索引”的每个地方,我都需要使用相同的等式。现在,我使用'n*k+1'来计算索引,它适用于正范围,但是当我有一个像{a,b}={-1,1}这样的范围时,它会中断

我认为这是一个相当简单的代数问题,但我绞尽脑汁想了几个小时,却找不到一个通用的方程式


(我很抱歉,这是一个重复的问题——我试图通过堆栈溢出文件搜索,但是很难把我的问题归纳成几个关键词。)

你想考虑的是创建一个函数来创建表的每一行。此函数的一个参数是行号

使用MapIndexed执行此函数,这将为您提供一种在提供递增行号的同时根据需要遍历范围的方法


(创建一个包含值范围的列表,然后将mapindex函数应用于此列表。)

我终于找到了解决方法。我过度考虑了范围,而不是依靠内部功能来控制它。我将函数重写为:

tableRiemannSums[fct_, {a_, b_}, n_] := Table[{k,
   leftRiemannSum[fct, {a, b}, k], 
   rightRiemannSum[fct, {a, b}, k]},
   {k, 1, n}}]
以下是左和右总和(供感兴趣的人参考!):

也许我能帮上忙。你可能也想考虑一下。
leftRiemannSum[fct_, {a_, b_}, n_] :=
 N[b - a]/n* Apply[Plus, Map[fct, Range[a, b - N[b - a] / n, N[b - a]/n]]]
rightRiemannSum[fct_, {a_, b_}, n_] := 
 N[b - a]/n* Apply[Plus, Map[fct, Range[a + (N[b - a]/n), b, N[b - a]/n]]]