2011-04-08 3 views
0

the question about which I've been thinking에 정확한 구문을 오해하고있을 수도 있지만 여러 변수의 방정식을 어떻게 줄일 수 있는지 궁금합니다.방정식을 줄이기 위해 프로그램을 작성 하시겠습니까?

팩터링이 중요한 역할을한다고 가정하고 있지만, 내가 생각하는 유일한 방법은 방정식을 트리 작업으로 분해하고 전체 트리에서 중복 노드를 검색하는 것입니다. 나는 많은 웹 어플리케이션이 이것을 매우 빠르게 수행하기 때문에 더 좋은 방법이 있다고 가정하고있다.

더 좋은 방법은 없나요?

답변

2

나는 그들이 찾고있는 종류의 축소는 (2 + 3) * x과 같은 것이 (* (+ 2 3) x)이 아닌 (* 5 x)이되어야한다고 생각한다. 어떤 경우에는 하위 트리가 일정하다는 것을 인식하고 계산할 수 있습니다.

연관 및 교환 법칙을 사용하여 처리를 돕기 위해 먼저 주변을 이동하려고 할 수도 있습니다. 따라서 2 + x + 3(+ (+ 2 x) 3)이 아닌 (+ 5 x)이됩니다.

원하는대로이 아이디어를 생각해보십시오. 그것은 고의적으로 개방적인 방식으로 주어졌습니다. 은 (+ (+ (* x x) (* 2 x)) 1) 대신에 (* (+ 1 x) (+ 1 x))이 자동으로 인식된다는 사실을 알게되어 기쁩니다. 그러나 거기에 가지 않고도 많은 양을 줄일 수 있습니다.

+0

저는이 문제에 대한 실제 답변보다이 문제에 대해 더 많은 관심을 갖고 있다고 생각합니다. 저는 용어를 꽤 빨리 그룹화 할 수있는 지점에 도달했습니다. 그러나 Wolfram과 수많은 수학 제품이 마치 그것이 아무것도 아닌 것처럼 고려하는 반면, 나는 그 이상으로 붙어 있습니다. –

+0

아. 많은 방법들이 있고, 나는 그들 모두가 무엇인지 모른다. 하나의 가능성은 http://en.wikipedia.org/wiki/Rational_root_theorem을 사용하여 가능한 모든 선형 요인을 나열하는 것입니다. 그런 다음 각각을 시도해보고 이것이 중요한 요소인지 확인할 수 있습니다. 또한 차수 1, 2, 3 및 4의 다항식에 라디칼을 사용하는 명시적인 수식이 있습니다. 이들은 대수적으로 단순화 될 수 있습니다. 5 차 다항식의 경우 우리는 모든 환원 불가능한 것들과 나머지 모든 것들에 대한 공식을 찾는다. 더 높은 학위에 대해서는 확신 할 수 없지만, 저는 Wolfram의 똑똑한 사람들이 그것에 대해 알고 있다고 확신합니다. – btilly

1

일반적인 솔루션은 플렉스 \ 들소 번역기를 작성하고 구문 분석 된 표현을 줄이기 위해 여기에 게시됩니다. 번역 흐름을 만들었다면 여기서 간단히 expr * expr + 2 * expr + 1 -> (* expr expr)과 같은 규칙을 추가 할 수 있습니다.

0

하나의 문제는 여기가 축소 된 것으로 간주됩니다. 예 : x = x + x + 2 + 2 * x, 명백한 축소는 x * x + 3 * x + 2가 될 것이며, 다른 하나는 (x + 1) * (x + 2)이다. 이것은 매우 중요하지 않은 문제이고 과제의 표현에서, 나는 당신이 정식 형태 (예를 들어 다항식, 가장 높은 힘으로 가장 낮은 것으로 정렬 된 것 (하나 이상의 변수가 힘의 합계를 취할 때) 그리고 계수를 줄입니다 (상수를 계산할 때).

일부 최적화는 유효하지만, 일반적이지는 않습니다. 예 : 그 해법 0이 갑자기 유효하기 때문에 x에 x = x를 줄이지 말라.

관련 문제