3원 연립방정식 계산 함수만들기

2025. 3. 5. 20:30함수계산기

함수계산기를 사용하여 3원 연립방정식을 구하는 함수를 만들어봅시다.
3원연립방정식의 형태는 수학책에 흔히 소개되는

a1•x+b1•y+c1•z=d1  
a2•x+b2•y+c2•z=d2
a3•x+b3•y+c3•z=d3

의 형태를 띤다고 가정합니다.

chatgpt에게 함수계산기의 SimpleMath 스크립트를 이용해서 3원 연립방정식의 해를 구하는 함수를 만들어 달라고 요청을 하니 아래 코드들처럼 코드를 짜줬습니다.
AI의 설명에 따르면 행렬의 판별식과 크래머 공식을 이용해 해를 구한다고 하네요. 답이 없거나 입력이나 계산에 오류가 나면 그냥 -515151을 반환하는 것으로 설정하였습니다.

아래 코드들을 순서대로 하나씩 복사해서 함수계산기의 공장페이지로 가서 오른쪽 상단의 점점점 메뉴버튼을 눌러 코드를 코드창에 붙여넣기하세요.
그런 다음에 run버튼을 눌러 코드를 실행하고 save버튼을 눌러 함수를 데이터베이스에 저장하세요.
저장한 후에 또 다른 함수를 코딩하고 실행시에는 이미 저장된 함수는 AC버튼을 눌러서 다 지워 준 후 실행하세요. 왜냐하면 이미 저장된 함수의 중복정의는 오류가 되기때문입니다. 저장된 함수는 안전하게 내함수 목록에 저장됩니다.

아래코드는 판별식 계산하는 코드입니다. 3원 연립방정식을 풀기위해서 필요한 도우미 함수입니다.

def det3(a1,b1,c1,a2,b2,c2,a3,b3,c3)
=a1*(b2*c3−c2*b3)
−b1*(a2*c3−c2*a3)
+c1*(a2*b3−b2*a3);


아래 코드는 해 x를 구하는 함수입니다.

def solveX3(a1,b1,c1,d1,a2,b2,c2,d2,a3,b3,c3,d3){
  var det=det3(a1,b1,c1,a2,b2,c2,a3,b3,c3);
  if(det==0){
    return -515151;
  }
  var detX=det3(d1,b1,c1,d2,b2,c2,d3,b3,c3);
  return detX/det;
}


아래 코드는 해 y를 구하는 함수입니다.

def solveY3(a1,b1,c1,d1,a2,b2,c2,d2,a3,b3,c3,d3){
  var det=det3(a1,b1,c1,a2,b2,c2,a3,b3,c3);
  if(det==0){
    return -515151;
  }
  var detY=det3(a1,d1,c1,a2,d2,c2,a3,d3,c3);
  return detY/det;
}


아래 코드는 해 z를 구하는 함수입니다.

def solveZ3(a1,b1,c1,d1,a2,b2,c2,d2,a3,b3,c3,d3){
  var det=det3(a1,b1,c1,a2,b2,c2,a3,b3,c3);
  if(det==0){
    return -515151;
  }
  var detZ=det3(a1,b1,d1,a2,b2,d2,a3,b3,d3);
  return detZ/det;
}


아래 함수에서는 파라미터 xyz를 하나 더 추가했는데 xyz의 값이 1이면 해 x를 2이면 해 y를 3이면 해 z를 구하도록 설정할 수 있는 함수입니다.

def solveFor3(a1,b1,c1,d1,a2,b2,c2,d2,a3,b3,c3,d3,xyz){
  if(xyz==1){
    return solveX3(a1,b1,c1,d1,a2,b2,c2,d2,a3,b3,c3,d3);
  }
  if(xyz==2){
    return solveY3(a1,b1,c1,d1,a2,b2,c2,d2,a3,b3,c3,d3);
  }
  return solveZ3(a1,b1,c1,d1,a2,b2,c2,d2,a3,b3,c3,d3);
}


아래 코드는 한글이름의 함수로 사용하기 편하도록 추가로 만든 함수입니다. 계산 결과는 영어이름 함수와 동일합니다.

def 삼원연립해(a1,b1,c1,d1,
a2,b2,c2,d2,
a3,b3,c3,d3,
xyz)
=solveFor3(a1,b1,c1,d1,
a2,b2,c2,d2,
a3,b3,c3,d3,
xyz);



함수를 하나씩 하나씩 복사해 넣고 run버튼 눌러서 싫행하고 save버튼 눌러서 저장한 후 AC버튼 눌러서 지우고 다음 함수 만들고 이렇게 해도 되고 아니면 위에 모든 함수를 다 복사해서 한꺼번에 붙여넣고 run버튼 눌러서 실행하고 save버튼 눌러서 저장해도 됩니다.
주의할점은 일단 저장된 함수는 중복해서 만들 수 없다는 점만 유념해 주세요. 저장  전에는 얼마든지 함수를 수정해서 실행할 수 있습니다.

자 이렇게 함수가 만들어 졌으니 이제 계산에 만들어진 함수를 사용할 차례입니다.
함수계산기의 계산기 페이지로 가서 F2버튼을 눌러서 방금 만들어진 함수를 선택히여 계산에 사용할 수 있습니다.
2x+3y+z=11  5x+2y-2z=3  -3x-y+3z=4  이 세 연립방정식의 해를 구해봅시다. 이 연립방정식의 해 x를 구하려면 다음과 같이 계산기에 입력하면 됩니다.
삼원연립해(2,3,1,11,5,2,-2,3,-3,-1,3,4,1)
해 y를 구하려면 맨 마지막 신호를 주는 값을 다음과 같이 2로 바꾸어 주세요. 삼원연립해(2,3,1,11,5,2,-2,3,-3,-1,3,4,2)
아래 그림은 실제 실행한 모습입니다.
마찬가지로 해 z를 구하려면
삼원연립해(2,3,1,11,5,2,-2,3,-3,-1,3,4,3)
과 같이 입력하면 됩니다

계산기페이지로 돌아와서 F2버튼을 눌러 방금 만든 함수를 아래 그림과 같이 계산에 사용하세요.



함수계산기의 강력한 프로그래밍 기능을 활용하여 여러가지 수학함수의 계산에 활용해보세요.