Процесс мышления для решения уравнений алгебры? - PullRequest
2 голосов
/ 19 декабря 2010

Я работаю над графическими приложениями, которые в основном строят графики уравнений на холсте HTML5.У меня не было проблем с построением графиков уравнений, которые имели вид y = 3x ^ (2) и т. Д. Это было так же просто, как вставить заданное значение x, подставив показатели для собственных функций и вуаля!

В идеале, однако, я хотел бы построить уравнения для окружностей и другие уравнения, которые не обязательно начинаются с y = ... .Это потребует на самом деле алгебры, что, к сожалению, не так просто.У меня вопрос: какой самый логичный способ решить такую ​​проблему, как 3x + 3y = 15 ?Давайте предположим, что мне дали x , и я решаю для y .Как бы вы пошли о создании функции, которая решает это?

Очевидно, я мог бы быть крайне неэффективным и циклически перебирать значения y, пока не найду значение, удовлетворяющее уравнению, но давайте попробуем этого избежать.

Я не прошу васнаписать сценарий для меня, я просто прошу лучший / самый эффективный мыслительный процесс для начала.

В настоящее время этот проект пишется на Javascript.

Спасибо!

Ответы [ 4 ]

0 голосов
/ 19 декабря 2010

Один (приблизительный числовой) способ состоит в том, чтобы взять уравнение и переписать его как P (x) = 0 [в вашем случае P (x) = 3 (x ^ 2) + 3 (y ^ 2) - 15]и затем используйте числовую технику, такую ​​как Ньютон-Рафсон , чтобы найти корни P (x)

Если вы хотите решить символически, то Система компьютерной алгебры (CAS) требуется (нетривиально).

0 голосов
/ 19 декабря 2010

обычно вы выражаете уравнение одной переменной на одной стороне знака равенства, а другой переменной - на другой.

Если вы хотите переписать уравнения из случайного пользовательского ввода, вам потребуетсяпарсинг двигателя.

смотрите здесь для обсуждения

0 голосов
/ 19 декабря 2010

Правильное название для того, что вы ищете: http://en.wikipedia.org/wiki/Computer_algebra_system

0 голосов
/ 19 декабря 2010

y=3x^(2) не является линейным, его квадратичным, 3x+3y=15 на самом деле является линейным.

Это зависит от того, насколько сложным вы хотите идти, не так уж сложно написать что-то, чтобы переставить линейное уравнение, например 3x+3y=15, в его стандартную линейную форму (y=5-x), но это становится сложнее быстроВероятно, для этого есть библиотеки на стороне сервера, я не уверен насчет JS.

...