Другие языки программирования и технологии

как в с++ сделать, что пользователь вводил функцию f(x), а потом х, и оно считалось

и можно ли как-то находить производную?
Можно сделать синтаксический разбор строки, то есть, например, при вводе

f = sin⁴X - ln|cosX| + expX программа бы автоматически распознавала функцию f как pow(sin(X),4)-log(fabs(cos(X)))+exp(X).

Но это ещё умéть надо! А производную в простейшем случае можно брать численно как (f(x+h)-f(x-h))/(2*h), где h, скажем, 1е-8 (ошибка будет ~h²).

Кстати, что это ещё там за дурь и бред пьяного крокодила про "символьные вычисления"? Считать же вроде, как я понял, надо на плюсах вовсе не "символьно", а вполне конкретно - численно!..
Кирилл Александров
Кирилл Александров
28 648
Лучший ответ
Валерий Матвеев можете объяснить как это сделать? на примере какой-нибудь функции и желательно с кодом
Дано функцию f(x,y). Вывести на екран функцію g(x)=
Если производную надо найти в числовом, а не символьном виде, это можно сделать по определению производной:

f'(x)=(f(x+dx)-f(x))/dx при некотором малом dx

Для анализа собссно функции можно использовать динамическое программирование: генерируешь библиотеку со своей функцией, компилируешь ее и тут же подключаешь. Способ извращенческий, но гораздо проще, чем символьные вычисления, если делать с нуля. Ну а с символьными вычислениями все выше уже рассказали...
Это называется "символьные вычисления" (в том числе и взятие прозводной). И, обычно, для этого используют более подходящие языки (как, например, Lisp или Prolog). Но и на C++ тоже можно: набери в Google: "C++ символьные вычисления" - получишь множество материалов.

Но тема эта большая и сложная - совсем не для "Ответов".
Андрей Сахаров
Андрей Сахаров
70 230
Ванёк Белов Для "Ответов" (и вообще) подошёл бы вариант: порекомендовать библиотеку, которая решает эти задачи. Уверен, такие библиотеки есть.
Функцию можно записать, в помощь алгоритм сортировочной станции и обратная польская нотация.
Производные - гугли библиотеки или методы, тут я бессилен.
---------------------------------------------------------------------------------------------------------------------------
Если есть возможность - ИМХО, для подобного предпочтительнее пайтон — там намного проще со всей этой ересью..
Zohid Abidov
Zohid Abidov
1 650

Похожие вопросы