每个人都是16岁的我都不熟悉编程,但是我想在代码中寻求帮助,我正在考虑创建一个程序,该程序可以找到导数ok,我知道如何找到3x或3x²等的导数。在c ++中,这很容易,因为我们可以将幂规则应用于此事物,但是有时我们必须应用商规则来找到导数,以便如何对代数方程式执行算术运算。我的问题是我们如何做到这一点,我们知道x + x是2x,而3x + 2 + 4x + 2是7x + 4,我该如何在c ++中做到这一点。我只想了解解决方案的其余部分,我将尝试自己解决,因为我们知道学习编程的最佳方法是自己做,我会问是否卡住了
答案 0 :(得分:0)
编写自己的 Polynomial 类是一个很好的起点。您可以将多项式系数存储为std::vector的组成部分。还使您的类算术operators重载(+,-,*,/等)。这样就可以轻松实现多项式情况的微分运算符!
如果您对此主题真的很感兴趣,建议您进一步阅读automatic-differentiation的概念,这些概念是用于区分几乎所有数学表达式的一组方法。我个人建议您阅读使用对偶数进行自动微分,尽管它是一个非常漂亮且功能强大的数学思想,但即使对于初学者,也可能易于实现。该link也具有与此主题有关的很多信息。
答案 1 :(得分:-2)
我假设您想自己实现此目标,而不是使用现成的解决方案。在这种情况下,您可以定义一个多项式类,并按照多项式的顺序对其进行模板化。差分算子可以一般地用有限差分模板来实现。书中有一个很好的例子:
发现现代C ++:面向科学家,工程师和程序员的强化课程(第3.8章)
否则,您可以使用符号代数库,例如SymbolicC ++。