在C#中生成然后使用taylor多项式

时间:2010-10-19 23:30:54

标签: c# math graphing taylor-series

我在C#中编写了一个简单的图形实现,我可以通过将每个像素与它所代表的图形上的位置进行比较来绘制图形,然后将该位置插入到我必须查看它是否在曲线上的函数中。这一切都很好。

我遇到的问题是使用生成的泰勒多项式。例如,我能够通过

创建以c为中心的超越函数f的第n个taylor多项式

从0到n的总和,其中计数器变量为k =((f(c)的kth导数)*(x-c)^ k)/ k!

我不知道如何在stackoverflow上做数学标记,我也不能在网上做这个,但我希望这是可以理解的。左侧可以写成sigma _k = 0 ^ n或类似的东西,其中_表示sigma下的部分,^表示上面的部分......

所以我最终生成了一个6阶泰勒多项式,其中cos(x)以0为中心(maclaurin,我知道)看起来像

“1 - x ^ 2/2!+ x ^ 4/4! - x ^ 6/6!”

这可以通过C#中的简单字符串操作来完成。我可以循环浏览并将下一个术语添加到字符串中。

我真的无法理解我是如何能够将字符串用作函数来比较图形位置,以查看该图形位置是否实际位于此图形上以便对其进行图形化。基本上:我如何在C#中使用字符串作为实际的数学函数,或者有更好的方法来实现这一点。

真的很抱歉,如果它令人困惑......真的尽力以人们可以帮助的方式解释它。

2 个答案:

答案 0 :(得分:1)

你需要一个字符串解析器 - >功能。有关示例,请参阅MathParser,这可能是您提到的所需内容。

答案 1 :(得分:1)

从一般的角度来看,无论何时你想将字符串转换为有效的字符串,你都必须实现一个解析器,它将解释字符串并执行由它指定的操作。对于数学公式,表达式树可用于维护操作和分组的顺序。可能有一些数学表达式库可以执行此操作,或者您可以自己动手。这不是一项微不足道的任务,但它肯定是可能的。

一旦你有了表达式树,要弄清楚给定x的值f(x)是否可以变形,只需计算它。对于f(x)图,您可以先测试x,看它是否属于图形区域的可见域。如果是,则评估f(x),如果点(x,f(x))是可绘制的,则绘制该点。