2013-02-06 8 views
0

두 가지 기능이 있다고 상상해보십시오. 해당 함수의 교차점을 찾아야합니다. f(x)==g(x)을 확인하기 위해 모든 x 값을 시도하지 않으실 겁니다. 일반적으로 수학에서는 f(x)==g(x)에서 파생 된 연립 방정식을 만듭니다. 그러나 프로그래밍 언어로 방정식을 구현하는 방법은 없습니다.
그래서 한 번 더, 나는 무엇을 찾고 :두 함수의 교점 찾기 - 연립 방정식 풀기

  1. 개념 알고리즘이 방정식을 해결하기 위해.
  2. 동시 및 2 차 방정식에 대해서도 동일합니다.

나는 기능 유도를 사용하여 몇 가지 해결 방법이 있어야한다 생각하지만, 나는 최근에 학교에서 파생 개념을 배운 나는이 경우에 사용하는 방법을 모른다.

+0

동시 비선형 방정식을 푸는 것은 모든 언어에 내장 될 것으로 기대되지 않는 고급 주제입니다. 그러나 많은 사람들이 당신이 그 주제에 대해 알고 있다면 그러한 솔루션을 구현하는 선형 대수 라이브러리를 가지고 있습니다. 이것은 그들에 대해 배울 곳이 아닙니다. 투표를 종료합니다. – duffymo

+0

알고리즘을 연구해서는 안된다는 것이 건설적이지 않다는 사실을 알려야합니다. 실제로 이것은 매우 구체적인 질문을하는 것보다 훨씬 건설적인 것입니다. 왜냐하면 많은 사용자가 유용한 답변을 찾을 수 있기 때문입니다. 프로그래밍은 소스 코드가 아니라는 것을 명심하십시오. –

+0

나는 동의하지 않는다. 그것이 당신의 견해입니다. 나는 많은 사람들이 유용하다는 것을 알게 될 것이라는데 동의하지만 이것은 토론 포럼이 아니다. – duffymo

답변

5

그것은 당신이 상상하는 것보다 훨씬 어려운 문제입니다. 이러한 것들을 배우기 시작할 수있는 좋은 곳은 Newton-Raphson method이며, 이는 h(x) = 0 형태의 수식에 대한 수치 근사치를 제공합니다. (h(x) = g(x) - f(x)을 설정하면이 문제에 대한 해결책을 얻을 수 있습니다.)

대수적 인 방정식 풀이 (예 : Mathematica에서 구현)는 훨씬 어렵습니다. 기본적으로 원하는 모든 것을 다시 만들어야합니다. 종이에 방정식을 풀 때 머리 속에서해라.

+2

해석 적으로'h (x)'를'x '로 구별 할 수있다 ('g (x)'와'f (x)'가 분석적으로 정의된다면)'dh (x)/dx '= 0.이 점들 사이에서'h (x)'는 단조롭게 될 것입니다 (증가하지 않거나 감소하지 않지만 인접 점 사이에서는 결코 증가하지 않습니다). 그리고 그 점들 사이에서'h (x)'= 0의 해답 인'x'를 찾을 수 있습니다 (예를 들어 이등분의 이항을 사용할 수 있습니다). 그리고 그 해는'f (x)'='g (x)'. 그래서,'h (x)'= 0를 풀기 위해서 당신은'dh (x)/dx' = 0를 풀 수 있습니다. 이것은 재귀 적으로 할 수 있습니다. –

+0

Alexey에게 제안 해 주셔서 감사합니다. 그러나 이것을 더 간단하게 설명 할 방법이 있다고 생각합니까? 나는 애매한 차별이 무엇을 의미하는지 모르겠습니다. –

+0

뉴튼 및 다른 루트 찾기 알고리즘에 대한 설명은 다음에서 찾을 수 있습니다. http://en.wikipedia.org/wiki/Root-finding_algorithm – Joni

1

분명히이 문제는 임의의 복잡한 "함수"를 구성 할 수 있기 때문에 일반적인 경우에는 해결할 수 없습니다. 예를 들어, 다양한 초월 및 복합 변형을 포함하여 5 조 용어가있는 "함수"가있는 경우 컴퓨터는 단일 값을 계산하는 데 수년이 걸릴 수 있고 다른 유사한 함수와 교차하는 데 훨씬 적은 시간이 걸릴 수 있습니다.

먼저, "함수"가 의미하는 것을 정의해야합니다. 학위의 다항식이 4보다 작 으면 문제는 훨씬 더 간단 해집니다. 이 경우 다항식의 항을 결합하고 방정식의 근원을 찾아 교차점이됩니다.

다항식에 5 개 이상의 용어 (5 진수 이상)가있는 경우 쉽게 기호 솔루션을 찾을 수 없습니다. 이 경우 용어가 결합되어 반복 근사를 통해 근본을 찾습니다. Root Finding Algorithms을 참조하십시오.

함수에 sin/cos/log/e^x 등의 초월자가 포함되는 경우 함수를 계열 또는 연속 분수로 나타냄으로써 잠재적으로 교차점을 찾을 수 있습니다. 그런 다음 한 계열을 다른 계열에서 빼고 값을 0으로 설정하십시오. 연속 방정식의 해는 근사의 근사값을 산출합니다.

+0

us242로 답변을 선택 했음에도 불구하고 고마워요. –

관련 문제