Другие языки программирования и технологии
как в с++ сделать, что пользователь вводил функцию 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²).
Кстати, что это ещё там за дурь и бред пьяного крокодила про "символьные вычисления"? Считать же вроде, как я понял, надо на плюсах вовсе не "символьно", а вполне конкретно - численно!..
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²).
Кстати, что это ещё там за дурь и бред пьяного крокодила про "символьные вычисления"? Считать же вроде, как я понял, надо на плюсах вовсе не "символьно", а вполне конкретно - численно!..
Если производную надо найти в числовом, а не символьном виде, это можно сделать по определению производной:
f'(x)=(f(x+dx)-f(x))/dx при некотором малом dx
Для анализа собссно функции можно использовать динамическое программирование: генерируешь библиотеку со своей функцией, компилируешь ее и тут же подключаешь. Способ извращенческий, но гораздо проще, чем символьные вычисления, если делать с нуля. Ну а с символьными вычислениями все выше уже рассказали...
f'(x)=(f(x+dx)-f(x))/dx при некотором малом dx
Для анализа собссно функции можно использовать динамическое программирование: генерируешь библиотеку со своей функцией, компилируешь ее и тут же подключаешь. Способ извращенческий, но гораздо проще, чем символьные вычисления, если делать с нуля. Ну а с символьными вычислениями все выше уже рассказали...
Это называется "символьные вычисления" (в том числе и взятие прозводной). И, обычно, для этого используют более подходящие языки (как, например, Lisp или Prolog). Но и на C++ тоже можно: набери в Google: "C++ символьные вычисления" - получишь множество материалов.
Но тема эта большая и сложная - совсем не для "Ответов".
Но тема эта большая и сложная - совсем не для "Ответов".
Ванёк Белов
Для "Ответов" (и вообще) подошёл бы вариант: порекомендовать библиотеку, которая решает эти задачи. Уверен, такие библиотеки есть.
Функцию можно записать, в помощь алгоритм сортировочной станции и обратная польская нотация.
Производные - гугли библиотеки или методы, тут я бессилен.
---------------------------------------------------------------------------------------------------------------------------
Если есть возможность - ИМХО, для подобного предпочтительнее пайтон — там намного проще со всей этой ересью..
Производные - гугли библиотеки или методы, тут я бессилен.
---------------------------------------------------------------------------------------------------------------------------
Если есть возможность - ИМХО, для подобного предпочтительнее пайтон — там намного проще со всей этой ересью..
Похожие вопросы
- Дано функцию f(x,y). Вивести на екран функцію g(x)=∫_a^b▒〖f(x,y)〗 dy. С++
- Вывести на экран таблицу значений функции Y(x) и ее разложения в ряд S(x)
- Если пользователь вводит размер массива, является ли он динамическим ?
- Люди,объясните подробно,пожалуйста,что значит в Паскале функция ord(x) и ей обратная chr(x) ?
- В языке си функция if (x) {} и if(x!=0){} это дно и тоже?
- Пользователь вводит три числа с клавиатуры, а программы выдает наибольшее. C++
- срочно Пользователь вводит три числа. Выяснить равны ли они между собой. если да, то какие именно. Линейный алгоритм нужно
- Пользователь вводит строку. Найти и вывести из строки римские цифры от 1 до 5, введенные прописными символами.
- помогите решить на паскале 3. Вычислить значение функции tg(x)/x2 на интервале от *-5, 5] c шагом h = 0.1.
- Подскажите! как на паскале можно сделать проверку, если вводишь символ то выдает ошибку об этом
Дано функцию f(x,y). Вывести на екран функцію g(x)=