Совет 216. Не дифференцируй функцию,
выдаваемую функцией Odesolve (Do not use the function
created the Odesolve-function)
В среду Mathcad, начиная с 2000 версии,
встроена функция odesolve,
возвращающая решение дифференциального уравнения[1].
Функция odesolve
примечательна тем, что она возвращает не числовое или текстовое значение
(скаляр или значения, сгруппированные в массив), а функцию, которую можно табулировать, по которой можно строить
график – см. верхнюю половину рис. 216. Но
нужно помнить о том, что функция odesolve не совсем «нормальная» (обычная) функция. Ее,
например, нельзя дифференцировать не только аналитически, но и численно. А
такая операция часто бывает необходима при верификации (проверке) правильности
решения дифференциального уравнения.
В нижней части рис. 216 сделана такая попытка, из которой
видно, что хоть и решение дифференциального уравнения правильно, но производная
найденной функции "ни куда не годится". Дело в том, что функция,
возвращаемая функцией odesolve, – это по своей сути
интерполяция табличных данных (численного решения дифференциального уравнения).
Отсюда и "ломанность" производной на рис.
216. Кроме того, следует помнить и о том, операция численного
дифференцирования – это, вообще говоря, не совсем корректная операция, которую
можно применять к даже «нормальным» функциям с большой осторожностью.
[1] Линейного дифференциального уравнения. В среде Mathcad 2001i функция odesolve может работать не только с одиночными дифференциальными уравнениями, но и с их системами.