在C#中生成然后使用泰勒多项式
-
09-10-2019 - |
题
我已经在C#中编写了一个简单的图形实现,可以通过将每个像素与图表所表示的图表的位置进行比较,然后将该位置插入函数,我必须查看它是否在曲线上。一切都很好。
我遇到的问题是使用生成的泰勒多项式。例如,我能够创建以c为中心的超然函数的nth taylor多项式
从0到n的求和,计数变量为k =((f(c)的kth衍生物) *(xc)^k)/k!
我不确定如何在Stackoverflow上进行数学标记,也不能在网络上做到这一点,但我希望这是可以理解的。左侧可以写为sigma _k = 0 ^ n或类似的东西,_表示sigma下的部分和代表上面的部分...
因此,我最终生成了一个以0(麦克劳林,我知道)为中心的cos(x)的泰勒多项式,看起来很像
“ 1 -x^2/2! + x^4/4! - x^6/6!”
这可以通过C#中的简单字符串操作来完成。我可以循环浏览并将下一个学期添加到字符串中。
我真的无法理解我实际上将如何使用字符串作为函数与图形位置进行比较,以查看该图位置是否实际上在此图上以图形为图。因此,本质上是:我如何使用字符串作为C#中的实际数学函数,或者有更好的方法来执行此操作。
真的很抱歉,如果这令人困惑……真的会尽力以人们可以提供帮助的方式来解释它。
解决方案
您需要字符串 - >函数的解析器。看 Mathparser 例如,这可能会完成您提到的一切所需的一切。
其他提示
从一般的角度来看,只要您想将字符串转换为有效的东西,就必须实现解析器,该解析器将解释字符串并执行由其决定的操作。对于数学公式,表达树可能用于维持操作顺序和分组。可能有一些数学表达式库可以做到这一点,或者您可以自己滚动。这不是一项琐碎的任务,但这肯定是可能的。
一旦有了表达树,以找出给定x的值f(x)是否可绘制,只需对其进行评估。对于F(X)图,您可以先测试X,以查看它是否落在图形区域的可见域中。如果确实如此,请评估F(x),如果可以绘制点(x,f(x)),则绘制点。