Генерация, а затем с использованием полинома Тейлора в C #

StackOverflow https://stackoverflow.com/questions/3973643

Вопрос

Я написал простую реализацию графики в C #, и я могу графические вещи, сравнивая каждый пиксель в положение на графике, который он представляет и подключил эту позицию в функцию, которую я должен увидеть, если она на кривой. Это все хорошо и хорошо.

Проблема у меня есть сгенерированный полиномиальный полиномиал Тейлора. Например, я могу создать Nth Taylor Polynomial трансцендентной функции F, ориентированной на C, делая

суммирование этого от 0 до n с переменной счетчиком k = ((производное kth f (c)) * (xc) ^ 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 #, или есть лучший способ сделать это.

Очень жаль, если это запутанно ... действительно стараюсь изо всех сил, чтобы объяснить это так, как люди могут помочь.

Это было полезно?

Решение

Вам нужен анализатор строки -> функция. Видеть MathParser Например, что, вероятно, делает все, что вы упомянули, вам нужно.

Другие советы

С общей перспективы, в любое время вы хотите преобразовать строку в то, что делает работу, вы должны реализовать парсер, который будет интерпретировать строку и выполнять действия, продиктованные им. Для математических формул дерево выражения может быть использовано для поддержания порядка операций и группировки. Вероятно, существует некоторые библиотеки математических выражений, которые сделают это, или вы можете катиться своим собственным. Это не тривиальная задача, но это, безусловно, возможно.

После того, как у вас есть дерево выражения, чтобы выяснить, если значение f (x) для данного х является графикой, просто оцените его. Для графика F (X) вы можете проверить x первым, чтобы увидеть, попадет ли оно в видимой области графической области. Если это делает, оцените f (x), и если точка (x, f (x)) - это графический, затем нарисуйте точку.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top