문제

다양한 행렬 수학을 사용하여 방정식 시스템을 풀어 'n' 차수에 대한 계수를 얻었습니다.

Ax^(n-1) + Bx^(n-2) + ... + Z

그런 다음 주어진 x 범위에 대해 다항식을 평가합니다. 본질적으로 다항식 곡선을 렌더링합니다.이제 여기에 문제가 있습니다.저는 이 작업을 "데이터 공간"이라고 부르는 하나의 좌표계에서 수행했습니다.이제 다른 좌표 공간에 동일한 곡선을 표시해야 합니다.입력/출력을 좌표 공간으로 변환하는 것은 쉽지만 최종 사용자는 스스로 다항식을 재구성할 수 있으므로 계수 [A,B,...,Z]에만 관심이 있습니다.다른 좌표계에서 동일한 모양의 곡선을 나타내는 두 번째 계수 세트 [A',B',...,Z']를 어떻게 표시할 수 있습니까?

도움이 된다면 저는 2D 공간에서 작업하고 있습니다.평범한 오래된 x와 y입니다.또한 계수에 변환 행렬을 곱하는 것이 포함될 수 있다고 생각합니까?좌표계 사이에 축척/변환 계수를 통합할 수 있습니까?이 행렬의 반대가 될까요?올바른 방향으로 가고 있다는 느낌이 듭니다...

업데이트:좌표계는 선형적으로 관련되어 있습니다.유용한 정보였을까요?

도움이 되었습니까?

해결책

문제 설명은 약간 불분명하므로 먼저 이에 대한 내 해석을 명확히하겠습니다.

다항식 함수가 있습니다.

에프(엑스) = CN엑스N + 씨n-1엑스n-1 + ...+ 씨0

[A, B, ...를 바꿨습니다.Z를 C로N, 씨n-1, ..., 씨0 아래의 선형 대수학을 더 쉽게 사용할 수 있습니다.]

그런 다음 다음과 같은 변환도 있습니다. z = 도끼 + b 에 대한 계수를 찾는 데 사용하려는 같은 다항식이지만, :

f(z) = DNN +디n-1n-1 + ...+디0

이것은 선형 대수학을 사용하면 매우 쉽게 수행할 수 있습니다.특히, (n+1)×(n+1) 행렬을 정의할 수 있습니다. 이는 우리가 행렬 곱셈을 할 수 있게 해줍니다.

  = * ,

어디 최상위 항목이 있는 열 벡터입니다. 0, 마지막 항목까지 N, 열 벡터 에 대해 비슷하다 계수 및 행렬 (i,j) 번째 [i 행, j 열] 항목 ij 주어진

  ij = (제이 선택하다 ) 지-이.

어디 (제이 선택하다 )는 이항 계수이고, 다음과 같은 경우 = 0입니다. > 제이.또한 표준 행렬과 달리 i,j의 범위는 각각 0에서 n까지입니다(보통 1에서 시작함).

이것은 기본적으로 z=ax+b를 직접 연결하고 다음을 사용할 때 다항식의 확장과 재압축을 작성하는 좋은 방법입니다. 이항정리.

다른 팁

타일러의 대답은이 변수 z = ax+b의 변화를 여러 번 계산해야한다면 정답입니다 (많은 다항식의 경우). 반면에, 한 번만해야한다면 매트릭스 계수의 계산을 최종 평가와 결합하는 것이 훨씬 빠릅니다. 이를 수행하는 가장 좋은 방법은 Hörner의 방법에 따라 Point (AX+B)에서 다항식을 상징적으로 평가하는 것입니다.

  • 다항식 계수를 벡터 v에 저장하고 (처음에는 모든 계수가 0입니다), i = n ~ 0의 경우 (Ax+B)를 곱하고 C를 추가합니다..
  • 추가 c 상수 항에 추가하는 것을 의미합니다
  • (AX+B)를 곱하는 것은 모든 계수에 B를 B를 벡터 K에 곱하는 것을 의미합니다.1, 모든 계수에 A를 곱하고 상수 항에서 벡터 K로 이동합니다.2, 그리고 k1+k2 다시 V로 돌아갑니다.

이것은 프로그램하기가 더 쉽고 계산하기가 더 빠릅니다.

y를 w = cy+d로 변경하는 것은 정말 쉽습니다. 마지막으로, Mattiast가 지적한 것처럼, 좌표의 일반적인 변화는 당신에게 다항식을주지 않을 것입니다.

기술 노트: 타일러에 의해 정의 된대로 매트릭스 T를 계산하려면 Pascal의 규칙의 가중 버전을 사용하여 계산해야합니다 (이것은 Hörner 계산이 암시 적으로 수행하는 것입니다).

i, j = BTI, J-1 + atI-1, J-1

이런 식으로, 당신은 왼쪽에서 오른쪽으로 열 다음 열을 간단하게 계산합니다.

귀하의 질문을 올바르게 이해하면 좌표를 변경 한 후에 기능이 다항식으로 유지 될 것이라는 보장은 없습니다. 예를 들어, y = x^2와 새로운 좌표계 x '= y, y'= x를 두십시오. 이제 방정식은 y '= sqrt (x')가되며, 이는 다항식이 아닙니다.

당신은 방정식이 있습니다 :

y = Ax^(n-1) + Bx^(n-2) + ... + Z

xy 공간에서, 당신은 x'y '공간에서 그것을 원합니다. 필요한 것은 변환 함수 f (x) = x '및 g (y) = y'(또는 h (x ') = x 및 j (y') = y입니다. 첫 번째 경우 x를 해결하고 y를 해결해야합니다. 일단 X와 Y가 있으면 해당 결과를 원래 방정식으로 대체하고 y '를 해결할 수 있습니다.

이것이 사소한 지 여부는 한 공간에서 다른 공간으로 변환하는 데 사용되는 기능의 복잡성에 달려 있습니다. 예를 들어, 다음과 같은 방정식

5x = x' and 10y = y'

결과를 위해 해결하기가 매우 쉽습니다

y' = 2Ax'^(n-1) + 2Bx'^(n-2) + ... + 10Z

입력 공간이 선형으로 관련되어 있으면 매트릭스가 한 계수 세트를 다른 계수 세트로 변환 할 수 있어야합니다. 예를 들어, "원래"X 공간에 다항식이있는 경우 :

Ax^3 + bx^2 + cx + d

그리고 당신은 w = px+q에서 다른 W 공간으로 변모하고 싶었습니다.

그런 다음 A ', B', C '및 D'를 찾고 싶습니다.

Ax^3 + bx^2 + cx + d = a'w^3 + b'w^2 + c'w + d '

그리고 약간의 대수와 함께

a'w^3 + b'w^2 + c'w + d '= a'p^3x^3 + 3a'p^2qx^2 + 3a'pq^2x + a'q^3 + b'p ^2x^2 + 2b'pqx + b'q^2 + c'px + c'q + d '

그러므로

a = a'p^3

b = 3a'p^2q + b'p^2

C = 3A'PQ^2 + 2B'PQ + C'p

d = a'q^3 + b'q^2 + c'q + d '

매트릭스 문제로 다시 작성하여 해결할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top