我需要制作一个能够区分功能的程序,但我不知道如何做到这一点。我只创建了一个将正则表达式(例如x ^ 2 + 2)转换为反向抛光表示法的部分。任何人都可以帮我创建一个程序,用+ * / - ^
找到表达式的符号衍生物答案 0 :(得分:1)
提示:使用递归例程。如果操作是一元加或减,则单独留下加号或减号并继续操作数。 (这意味着,在操作数上递归调用派生例程。)如果一个操作是加法或减法,只留下加号或减号,并递归地找到每个操作数的导数。如果操作是乘法,请使用产品规则。如果操作是除法,请使用商规则。如果操作是取幂,则使用广义幂规则。 (你知道(u^n)' = n * u^(n-1) * u'
这个规则吗?大多数第一年的微积分书都没有给出它,但很容易用对数微分来找到它。)(现在你已在评论中澄清说没有变量在指数中,您可以使用常规幂规则n
,其中x
是常量。)在递归的基础上,1
的导数为{{1}}并且常数的导数为零。
这种算法的结果非常简单,但它符合您的要求。由于该算法查看操作然后查看操作数,使用波兰表示法表达式可能比反向波兰语或“正则表达式”更简单。但你仍然可以用这些形式表达。
如果您需要更多详细信息,请向我们展示您的更多工作。