2012-10-06 1 views
0

모든 표현식을 평가하고 그래프로 작성하는 완전한 계산기를 만들었습니다. 나는 또한 수식 w.r.t.를 정확하게 구별하는 상징적 인 구분 기호을 만들었습니다. x하지만 답장이 많은 배수로 나오기 때문에 프로그래밍 방식으로 일반적인 방정식을 단순화하는 방법에 대해 약간 분실되어 있습니다. 나는 * 1이 쉽게 단순화된다는 것을 알지만 모든 상황을 커버하기 위해 모든 라운드 단순화기를 필요로한다.표현식 프로그래밍

+0

IMHO를위한 무료 (라이선스 방식) 방법은 [sympy] (https://github.com/sympy/sympy/wiki)를 사용하여 간소화하는 것입니다. – enobayram

+0

아니요, 직접해야합니다. 어쨌든 iOS 앱을위한 것이므로 해당 라이브러리를 구현할 수 있다고 생각하지 않습니다. 나는 X와 같은 각각의 '문자'를 볼 때 단순화 된 방정식을 가지고 있고, 나머지 표현식 각각에 대해 X의 힘을 보면서 단순화하지만, 괄호 또는 다른 함수는 사용할 수 없습니다. – bobjamin

+0

요점은 컴퓨터 대수학 시스템 (CAS), C++ 컴퓨터 대수학 시스템 [SymbolicC++] (http://issc.uj.ac.za/symbolic/symbolic.html)이 필요하다는 것입니다. GPL 라이센스. 귀하의 필요에 부합하지 않을 수 있습니다. 당신이 처음부터 그것을 주장한다면, 나는 프로그래밍 문제보다 수학 문제가 더 중요하다고 생각합니다. 그리고 그것은 Stackoveflow의 범위를 벗어납니다. 당신은 또한 서버에서 단순화를 수행하는 것을 고려할 수 있습니다. 그러면 사악한 기업의 임의적 한계를 해결할 필요가 없습니다. – enobayram

답변

1

단순화를 정규화의 한 형태로 생각합니다. 아마 당신이 구현 할 수 있습니다 첫 번째 것은 다항식의 단순화 :

  • 계산 X이 유일하게 유효한 변수가 당신을 위해하지 않는 한 변수의 순서를 정의하는 모든
  • 에서 어떤 변수를 포함하지 않는 모든 하위 표현식 변수들은 변수의 순서에 따라
  • 정의 A에 대한 고려
  • 차항을 변수와도 얻어 monomials하는 순서에있어서의 monomials
  • 차항 다항식 자신의 monomials에 따라
  • 당신은 또한 기능을 포함하는 표현을 단순화하려면 제로

을 판명 모든 monomials을 제거 중복 monomials를 확인하고 자신의 계수

  • 을 결합, 상황이 임의의 복잡한 될 수 있습니다. 일반적으로 용어의 단순성을 측정하기위한 몇 가지 방법을 정의하려고합니다. 즉, 두 용어가 주어지면 둘 중 어느 것이 더 간단한지를 결정합니다. 그런 다음 규칙을 생각해보고 용어를 더 간단하게 만들 수 있는지 여부를 확인할 수 있는지 확인하십시오. 해지 (즉, 단계가 무한히 많으면 간단해질 수있는 방법이 없음)와 합류 (즉, 가능한 두 가지 단순화가있는 경우 다음 중 어느 것을 수행할지는 중요하지 않습니다. 최종 결과는 동일합니다).

    term rewriting, rewrite systems 및 관련 주제에 관한 자료를 읽어 볼 수 있습니다.

  • +0

    입력에 감사드립니다. 당신이 말한 것은 거의 내가 필요로하는 것과 일치합니다 지금까지 솔루션의 내 자신의 개발, 기능은 실제로 어려운 것으로 판명하고 있습니다. – bobjamin