Как построить график любой функции?

Рейтинг: 0Ответов: 5Опубликовано: 10.01.2015

Данная математическая функция(любая), программа должна сама решить её и построить его график. Как решить подобную задачу

Ответы

▲ 2

@Александр Старцев, сначала нужно произвести простую декомпозицию задачи. Вам требуется следующий функционал (как минимум):

  • Ввод, откуда получается функция
  • Парсер функции
  • Вычислитель значений функции, который работает с выводом парсера и набором произвольных значений
  • Построитель графика
  • Генератор набора значений для графика. Т.к. тут явно не rocket science, самым простым будет просто получить большой набор точек функции без аппроксимации.

Вот на конкретные вопросы по вышеописанным компонентам будет куда легче ответить.

▲ 1

Вы не можете построить график произвольной функции. Подумайте, для примера, как вы реализуете график функции Дирихле.

▲ 0

Для произвольной функции -- наверное, за 2 прохода.

На первом вычисляем значения, которые как-то агрегируем и запоминаем.

Потом анализируем, например, диапазон значений и т.п.

Затем читаем запомненные значения и рисуем (конечно, возможен вариант, когда вместо запоминания мы повторно считаем значения).

▲ 0
  int f(x)
  {
     return x*x;
  }
  for(int i=-100; i < 100;i++)
  {
     putPoint(x,f(x))//рисует точку с коорд (x,y)
  }

где f(x) ваша функция. В моём примере это y=x^2; Этот цикл нарисует 100 точек от вашего графика.

▲ 0

Я надеюсь, вы не подразумеваете «как написать вольфрам»? Нужна конкретика, для каких функций строить, какова погрешность и т.д. Хотя бы уровень задачи. Если на вход ожидается нечто вроде (x^2 + 1)/x — относительно простые функции — то это одно, если нужен функционал как в маковском графере — с параметрическими и неявными уравнениями, интегрированием и т.п. — то это намного сложнее