Использование нейронных сетей для решения уравнений?
Итак, моя цель сделать нечто похожее на WolframAlpha, но только в математической сфере. Отличия будут в том что мой проект бесплатен и будет работать в оффлайн режиме.
Разработку веду на С++, в Borland C++Builder пока что только под Windows. На данный момент сделал калькулятор, который считает пошагово, анализируя одну строку.
Теперь собственно к сути вопроса:
Насколько я представляю для решения уравнений, как в WolframAlpha, есть два пути:
1) Прописывать все варианты решения уравнений вручную. Не знаю насколько это реально, т.к. уравнений такое многообразие, и для решения уравнений высших степеней, а также показательных необходимо будет прописывать очень и очень сложные и большие алгоритмы.
2) Использование Нейронных сетей. Как конкретно воплотить их в жизнь, я не знаю, но с принципами работы ознакомлен.
Как вы думаете, что проще для решения уравнений? Я правильно понимаю, что если создать и настроить нейронную сеть то не нужно будет прописывать алгоритм для каждого типа уравнений, а она сама все будет решать? Можно ли использовать нейронные сети оффлайн?
Расскажите, пожалуйста об оптимальном, по вашему мнению, решении данной задачи.
когда была необходимость использовал маткад для тяжёлых случаев и адвенсед графер для чего по проще,
у маткада нынче появилась бесплатная версия.
нейронные сети всегда допускают ошибку, их долго и нудно учить, они нужны для того чтобы компьютер мог выполнить работу человека , а преобразование и решение формул человеку даётся очень сложно.
Василий: ну маткад и графер неплохие вещи, никто не спорит, только вот мне то что делать, я с нуля свою систему разрабатываю. Графики построить не столь проблематично как решать сложные уравнения, по скольку методов решения уравнений огромное множество
Любые уравнения решаются через n-мерные множества.
Задача - поиск экстремумов границ этих множеств и анализ пересечений и касаний.
Нужно научиться работать с n-мерными множествами.
NikHaker: ну если не слышали, это вовсе не означает, что оно не существует: уравнение первого порядка (с одной неизвестной) - это точка на прямой. Выводите - никто же не мешает.
xmoonlight: понятно что решения множествами есть, но по-моему, уравнения вида 2х=4 будет нецелесообразно решать многомерными множествами, для таких уравнений более оптимальное решение - выражение х.
А вот высших степеней, показательные и логарифмические можно множествами? И в чем там основной смысл?
NikHaker:
2x=4
x - это множество состоящее из 1-го элемента, при котором равенство верно.
т.е. x - это точка, лежащая на прямой X.
Графически:
--**
----
Переформулируем, сколько раз отрезок [0;2] помещается в [0;4] ?
и дальше делаем вычитание (деление коэф.) множеств точек (отрезков) и получаем [0;2].
------------------------------
В любом случае, если сделать решение множествами простое уравнение, то другие включая системы и неравенства - можно будет сделать 1-в-1.
Множествами - можно решать ЛЮБЫЕ! мат. задачи.
Zigzak: к сожалению, я не искал подобное, но что точно можно сказать: что каждый диапазон в n-мерной системе - это и есть конечное множество других подмножеств находящихся в этой n-мерной системе и возможно, имеющей пересечения с другими плоскостями. Находя различные зависимости - можем делать любые выводы. А общие диапазоны (включая прерывистые) - это и будут решения заданной системы уравнений или неравенств n-ого порядка.