Это то, на что вы, вероятно, захотите взглянуть, используя математическую библиотеку. Для .NET Math.NET представляется наиболее полным вариантом (не уверен, насколько он стабилен, но он, безусловно, очень полный). Библиотека для выполнения символьных манипуляций должна быть в состоянии справиться с конкретной проблемой, которую вы здесь поставили.
Если честно, писать это с нуля не должно быть слишком сложно, но если вы не очень хорошо знакомы с деревьями выражений и не знаете, как подойти к задаче, я все равно рекомендую используя существующую библиотеку математики, либо Math.NET, либо любую другую приличную библиотеку, которая выполняет символическую алгебру.