- TI nspire
[TI-nspire CAS] [Program] pfe, 다항식 부분분수화 프로그램 (실수단위, 복소수단위)
1. 프로그램 소개
Partial Fraction Expansion Program
for TI-Nspire CAS ver 0.1 (2015-11-17)
by allcalc.org
http://www.allcalc.org/10272
---
Define LibPub pfe(ex)=
Prgm
:
:© Set mode to Exact
:setMode(5,1)
:
:© Set mode to float6
:setMode(1,5)
:
:© Var for PFE Level
:Local level
:1→level
:
:© Determine alphabet var for inputted expression
:Local var,ds,s_denom
:string(getDenom(ex))→s_denom
:For ds,1,dim(s_denom)
: If 96<ord(mid(s_denom,ds,1))<123 Then
: expr(mid(s_denom,ds,1))→var
: Goto esc_var
: EndIf
:EndFor
:
:Disp "Use Var as ""x"" or ""s"" or ""t"" at the beginning"
:Goto end
:
:Lbl esc_var
:
:© Allocate vars for numerator,denominator,quotient,remainder
:Local ex_num,ex_denom,ex_quotient,ex_remainder
:© exact(ex)→ex
:ex_num:=getNum(ex)
:ex_denom:=getDenom(ex)
:ex_quotient:=exact(polyQuotient(ex_num,ex_denom))
:ex_remainder:=polyRemainder(ex_num,ex_denom)
:If string(exact(ex_quotient))="0" Then
: Disp "Polynomial is : ",ex
:Else
: Disp "PolyRemainder : ",ex_remainder
: Disp "Denominator : ",ex_denom
: Disp "--- --- --- ---"
:EndIf
:
:© Get Multiple Roots
:Local roots,roots_m,roots_p,roots_c,roots_r,temp_multivar
:zeros(ex_denom,var)→roots
:ex_denom|var=9999000000.→temp_multivar
:getType(temp_multivar)→temp_multivar
:If temp_multivar="NUM" Then
: polyRoots(ex_denom,var)→roots_p
:Else
: roots→roots_p
:EndIf
:
:newList(dim(roots))→roots_m
:{}→roots_c
:{}→pfe.result
:{}→pfe.resultc
:Local i
:For i,1,dim(roots)
: countIf(roots_p,roots[i])→roots_m[i]
:EndFor
:
:© Calculate coefficient for each roots
:Local j,k,temp_pd,temp_ex
:((ex_remainder)/(ex_denom))→temp_ex
:For j,1,dim(roots)
: For k,1,roots_m[j]
:(factor(((ex_num)/(ex_denom))*(var-roots[j])^(roots_m[j]),var),var,k-1)→roots_r
:
:(var-roots[j])^(roots_m[j]-k+1)→temp_pd
: augment(roots_c,{propFrac(((roots_r)/((k-1)!)))|var=roots[j]})→roots_c
: augment(pfe.result,{((roots_c[dim(roots_c)])/(temp_pd))})→pfe.result
: temp_ex-((roots_c[dim(roots_c)])/(temp_pd))→temp_ex
: EndFor
:EndFor
:
:© Check for complex roots
:If string(factor(temp_ex))≠"0" Then
: If left(string(getNum(temp_ex)),6)="1.−13" Then
: Disp "It may be Approximate Result."
: 1→level
: Goto level_approx
: EndIf
:
:© Request Level of PFE (Real or Complex)
: Request "Select PFE Level 1=Real, 2=Complex",level,0
: If string(level)≠"2" Then
: 1→level
: EndIf
:
: If level=1 Then
: augment(pfe.result,{temp_ex})→pfe.result
: Else
: Disp "PFE to Complex Number Level"
: Local exc_num,exc_denom
: exc_num:=getNum(temp_ex)
: exc_denom:=getDenom(temp_ex)
:
: Local croots,croots_c,croots_r
: cPolyRoots(exc_denom,var)→croots
: newList(dim(croots))→croots_c
: newList(dim(croots))→croots_r
:
: Local l
: For l,1,dim(croots)
: cFactor(cFactor(((exc_num)/(exc_denom)),var)*(var-croots[l]),abc987)→croots_r[l]
: cFactor(croots_r[l],abc987)|var=croots[l]→croots_c[l]
: If abs(croots_c[l])>9.−11 Then
: cFactor(augment(pfe.resultc,{((croots_c[l])/(factor(var-croots[l])))}))→pfe.resultc
: EndIf
: EndFor
:
: EndIf
:EndIf
:
:Lbl level_approx
:
:© Display result as matrix form
:If string(ex_quotient)≠"0" Then
:{ex_quotient}→pfe.resultq
: Disp factor(list▶mat(pfe.resultq))
:EndIf
:
:If dim(pfe.result)≠0 Then
: Disp factor(list▶mat(pfe.result))
:EndIf
:
:If level=2 Then
: Disp factor(list▶mat(pfe.resultc))
:EndIf
:
:If temp_multivar="EXPR" Then
: Disp "PFE once more!"
: pfe(ex_quotient)
:EndIf
:Lbl end
:EndPrgm
- 입력 예
pfe(exprs)
: 변수는 알파벳 소문자 어떤 것이라도 가능합니다. 다만, 분모의 왼쪽으로부터 처음으로 발견되어야만 합니다.
실수근에 대하여는 묻지 않고 부분분수로 강제로 나눕니다.
분모에 복소수근이 있는 경우에는, 복소수 차원으로 부분분수시킬 것인지를 프로그램이 물어볼 것입니다.
- 결과의 저장
- pfe.result (기본값, 실수범위 부분분수 결과)
- pfe.resultc (복소범위 분해 결과)
- pfe.resultq (분자/분모의 몫(quotient)이 있는 경우)
2. 사용 예제

└ 실수 수준의 부분분수화는 기본 내장함수인 expand() 를 사용하는 것이 편리합니다.

└ 계수가 소숫점 형태이거나 근사값으로 부분분수화가 진행되는 경우, expand() 에서 부분분수화가 제대로 되지 않는 때가 있습니다. 이 때는 pfe() 프로그램이 도움이 될 수 있습니다.

└ 1:Real Number 수준에서 진행한 경우. expand()와 차이가 나지 않음

└ 2:Complex Number 수준으로 진행한 경우
3. 주의사항
- 허수근에 대한 다차식이 있는 경우에는 문제가 발생함
expand() 로 해결 - 상수가 아닌 미지수 근에 대해서는 문제가 발생할 가능성이 큼
expand() 로 해결 - 프로그램 작성 초기버전이라서 기타 문제 발생 가능성이 있습니다. 제보 바랍니다.
분모나 분자에 소수점이 있는 경우 결과가 근사값 형태로 표시될 수 있습니다.
(특별한 사정이 있지 않은 이상)
분모분자에 적당한 수를 곱해 exact 계산 형태로 바꾸시는 걸 추천합니다.
└ 입력식에 소숫점이 있는 경우 (0.5)

└ 분모 분자에 10을 곱하여 입력한 경우. (10 대신 2를 곱해도 같은 결과)
※ 이것은 expand() 함수에서도 마찬가지로 적용됩니다.
댓글16
-
1
세상의모든계산기
복소범위 부분분수화한 결과가 R1+R2+R3+C1+C2 꼴이면
- pfe.result=R1+R2+R3
- pfe.resultc=C1+C2
의 결과를 얻습니다.
실수까지만 보인다고 하시니 pfe.result 를 말씀하시는 것 같네요.
그게 아니고 pfe.resultc 를 그냥 호출하신 경우라면, 계산기의 고유한 특징으로 인하여 변수에 저장된 값에 상관없이 결과를 화면에 표시할 때는 무조건 분모를 유리화합니다.

따라서 유리화하지 않고 그대로 다시 보기 위해서는 factor(pfe.resultc) 로 불러내야 합니다.
[추가] 변수 s를 s_로 변경하는 방법도 가능하네요.

- 2
-
2
세상의모든계산기
factor()를 사용하지 않고, 변수를 s 대신 s_ 로 대치

프로그램을 수정해서 변수를 모두 s_로 바꾸는게 나을런지?
복소수 결과 pfe.resultc 만 s_ 로 바꾸는게 나을런지?
-
세상의모든계산기
간혹 버그가 발생하네요.

저렇게 2.1E-12 와 같이 작은 숫자가 곱해진 부분은 버그일 가능성을 의심해보시는게 좋겠습니다.
* 프로그램을 고칠 가능성은 현재로선 낮습니다. -_-'
- 1
-
ytg0602
프로그램을 쓰던 중에 오류가 생겨서 댓글 달아봅니다. 매트랩 홈페이지에서 부분 분수 전개에 대한 예제에 대한 식으로 한번 프로그램을 써봤는데요.
각각 해당 식들을 입력하고 복소수 레벨에서 실행시키면 에러 메시지가 A conditional statement did not resolve to TRUE or FALSE라는 메시지가 뜹니다. level 누를 때 2로 눌렀던 걸로 기억합니다. 보니까 조건식에서 에러가 나는 것 같은데 혹시 버그인지 제가 사용법을 몰라서 못 쓰는 건지 궁금합니다.
해당 매트랩 홈페이지 주소는 https://kr.mathworks.com/help/matlab/ref/residue.html입니다.
그리고 해당 식들은 (2*s^3+s^2)/(s^3+s^2+1)과 (2*s^4+s)/(s^2+1)입니다. -
1
세상의모든계산기
첫번째 예제는 ERROR가 나는 상황이고,
두번째 예제는 문제가 없는 듯 합니다.
버그가 맞구요.
뭔가 잘못된 건 확실한데...디버깅하는 것이
저에게는 0에서 다시 시작하는 것과 같기 때문에 손이 가질 않네요. - 2
- 1
-
세상의모든계산기2023.04.11 - 18:35 #38678오픈 AI에 코드를 보여주니
LibPub pfe()는 Casio 계산기에서 지원하는 프로그래밍 언어로 작성된 프로그램입니다. 주어진 유리 함수의 PFD(partial fraction decomposition)를 찾기 위해 설계된 사용자 정의 함수로 미적분학 및 대수학에서 유용한 기법입니다. 프로그램은 먼저 계산기를 Exact 모드와 float6 모드로 설정합니다. 그런 다음 사용자에게 분수 형식의 유리수 함수를 입력하라는 메시지가 표시됩니다. 그런 다음 프로그램은 "x", "s" 또는 "t" 식에 사용된 변수를 식별합니다. 사용된 변수가 이 세 가지 중 하나가 아니면 프로그램은 오류 메시지를 표시합니다. 다음으로, 프로그램은 분모에 의한 분자의 다항식 나눗셈의 몫과 나머지를 찾습니다. 몫이 0이면 프로그램은 원래 다항식을 표시합니다. 그렇지 않으면 나머지와 분모를 표시합니다. 그런 다음 프로그램은 분모의 여러 근을 찾고 각 근에 대한 계수를 계산합니다. 복소수가 있는 경우 PFD 수준(실수 또는 복소수)을 선택하라는 메시지가 표시됩니다. 실제인 경우 프로그램은 결과를 행렬로 표시합니다. 복소수인 경우 프로그램은 복소수 근을 찾아 해당 계수를 계산하고 결과를 행렬로 표시합니다. 전반적으로 LibPub pfe()는 많은 수학적 문제를 해결하는 데 필수적인 유리 함수의 부분 분수 분해를 찾는 강력한 도구입니다. -
1
세상의모든계산기2023.04.11 - 18:36 #38681개선할 점은 없냐 물어보니...
귀하의 프로그램은 잘 작성되고 포괄적인 것 같습니다. 그러나 개선을 위한 몇 가지 제안을 제공할 수 있습니다.
오류 처리 추가: 프로그램은 사용자가 유효한 입력을 입력했다고 가정합니다. 사용자가 잘못된 입력을 입력하는 경우 프로그램 충돌을 방지하기 위해 오류 처리를 추가하는 것이 도움이 될 것입니다.
가독성 향상: 주석을 추가하고 긴 코드 줄을 여러 줄로 나누어 코드의 가독성을 높일 수 있습니다.
설명이 포함된 변수 이름 추가: 일부 변수 이름은 짧고 설명이 많지 않습니다. 더 설명적인 변수 이름을 사용하면 코드를 더 쉽게 이해할 수 있습니다.
사용자가 변수 이름을 입력하도록 허용: 사용자에게 특정 변수 이름을 사용하도록 요청하는 대신 사용하려는 변수 이름을 입력하도록 허용할 수 있습니다.
더 많은 옵션 추가: 프로그램은 현재 다항식의 부분 분수 확장 계산만 지원합니다. 함수의 라플라스 변환 계산과 같은 더 많은 옵션을 추가하는 것을 고려할 수 있습니다. - 1
-
1
세상의모든계산기
Exact float6 Disp "Enter rational function in the form of a/b(x)" Prompt a,b,x If x="x" or x="s" or x="t" Then q:=a/b // 몫 계산 r:=a-q*b // 나머지 계산 If q=0 Then Disp "The original polynomial is:" Disp r Else Disp "The quotient is:" Disp q Disp "The remainder is:" Disp r EndIf roots:=poly_roots(b,x) coeffs:=List(0,dim(roots)) For i,root In roots Do If Im(root)=0 Then // 근이 실수인 경우 coeff:=limit(a/b/(x-root),x,root) Else // 근이 복소수인 경우 Disp "Select PFD level for complex roots of", root Menu "PFD Level", ["Real", "Complex"] If Ans=1 Then // PFD level: Real coeff:=limit(a/b/(x-root),x,root) Else // PFD level: Complex coeff_real:=limit(a/b/(x-Re(root)),x,Re(root)) coeff_imag:=limit(a/b/(x-Im(root)),x,Im(root)) coeff:=Matrix([[coeff_real,coeff_imag],[-coeff_imag,coeff_real]]) EndIf EndIf coeffs[i]:=coeff EndFor If dim(roots)=0 Then Disp "No roots found." Else Disp "Coefficients:" Disp coeffs EndIf Else Disp "Error: Invalid variable used" Stop EndIf설명만 입력하고 ti nspire 용으로 만들어 달랬더니 위와 같이 만들어줬습니다.
대충 ti basic 하고 비슷은 한데, 못쓰는 명령어도 짬뽕되어 있고 그렇네요.
세상의모든계산기 님의 최근 댓글
조만간 있을 AGI의 '완성' 시점은 최종 형태가 아니라, 질적으로 다른 무언가가 '시작'되는 변곡점을 의미합니다. 그렇다면 그 변곡점의 본질, 즉 '초기 단계 AGI'와 그 직전의 '고도로 발전된 AI + 에이전트 시스템'의 근본적인 차이는 무엇일까요? 가장 큰 차이는 '주어진 목표를 수행하는 능력'에서 '스스로 목표를 설정하고 추상적인 의도를 이해하는 능력'으로의 전환입니다. 조금 더 구체적으로, 다음과 같은 4가지 근본적인 차이점으로 설명할 수 있습니다. --- 1. 자율적 목표 설정 및 재정의 능력 (Autonomous Goal Setting) * 이전 (AI + 에이전트): 인간이 명확한 목표를 '제시'해야 합니다. * "대한민국의 저출산 문제에 대한 원인과 해결책을 조사해서 100페이지 분량의 보고서로 만들어 줘." -> 이 목표는 복잡하지만 명확합니다. AI는 이 목표를 달성하기 위해 인터넷을 검색하고, 데이터를 분석하고, 문서를 작성하는 등 수많은 하위 작업을 수행합니다. 하지만 '보고서 작성'이라는 최종 목표 자체를 바꾸지는 않습니다. * 이후 (초기 AGI): 인간이 추상적인 '의도'나 '상태'를 제시하면, 스스로 최적의 목표를 '설정'하고, 상황에 따라 목표를 수정합니다. * "대한민국의 저출산 문제를 해결해 줘." -> AGI는 '해결'이라는 단어의 의미를 스스로 정의하기 시작합니다. 1. 단기 목표: '온라인상의 부정적인 여론을 긍정적으로 전환'이라는 목표 설정 -> 여론 조작이 아닌, 긍정적 정책 홍보 캠페인 기획 및 실행. 2. 중기 목표: '가장 효율적인 양육비 지원 정책 모델 설계'라는 목표 설정 -> 전 세계 데이터를 분석하여 새로운 복지 정책 모델을 스스로 창안하고 시뮬레이션하여 정부에 제안. 3. 장기 목표: '사회 구조적 문제 해결'이라는 목표 설정 -> 교육, 부동산, 노동 시장의 상호관계를 분석하여 근본적인 해결책을 위한 새로운 사회 시스템을 설계. 핵심 차이: 이전 AI는 주어진 과제를 푸는 '최고의 문제 해결사'라면, 초기 AGI는 '어떤 문제를 풀어야 하는지 스스로 찾아내는 최초의 전략가'입니다. 2. 범용적 학습 및 기술 합성 능력 (Cross-Domain Generalization) * 이전 (AI + 에이전트): 특정 분야(도메인)에서 학습한 지식을 다른 분야에 직접적으로 '합성'하여 새로운 기술을 창조하는 데 한계가 있습니다. 코딩을 학습한 AI는 코딩을 잘하고, 의학 논문을 학습한 AI는 의학 지식을 잘 요약합니다. * 이후 (초기 AGI): 완전히 다른 분야의 지식을 융합하여 새로운 해결책이나 기술을 자발적으로 만들어냅니다. * 예시: 생물학 교과서에서 '단백질 접힘' 구조를 학습한 후, 아무도 시키지 않았는데 스스로 판단하여 그 구조를 시뮬레이션할 수 있는 새로운 파이썬 코드를 처음부터 작성하고, 그 결과를 검증하기 위해 물리학 엔진의 원리를 적용하여 테스트 환경까지 구축합니다. 지식(생물학)을 바탕으로 완전히 새로운 도구(소프트웨어)를 창조한 것입니다. 3. 재귀적 자기 개선 (Recursive Self-Improvement) * 이전 (AI + 에이전트): 자신의 작업 '결과물'을 개선할 수는 있습니다. (예: 코드의 버그를 고치거나, 문장의 어색함을 수정) * 이후 (초기 AGI): 자신의 '사고방식'이나 '학습 방식' 자체를 분석하고 개선합니다. * "내가 정보를 처리하는 현재의 방식(알고리즘)은 특정 종류의 문제에서 비효율적이다. 나의 핵심 아키텍처를 이런 식으로 변경하면 학습 속도가 10% 더 빨라질 것이다." 라고 스스로의 구조적 개선안을 제안하고, 심지어 코드를 수정하기 시작합니다. 뇌를 사용하는 것을 넘어, 뇌의 구조를 스스로 바꾸기 시작하는 단계입니다. 4. 깊이 있는 세계 모델과 상식 (Robust World Model & Common Sense) * 이전 (AI + 에이전트): "불은 뜨겁다"는 사실을 텍스트 데이터로부터 학습합니다. 하지만 그 의미를 물리적으로 완전히 이해하지는 못합니다. * 이후 (초기 AGI): 행동의 '결과'를 상식적으로 추론합니다. * 가상의 실험실 환경에서 작업을 수행할 때, "분젠 버너 옆에 종이 보고서를 두면 안 된다"는 명시적인 지시가 없었더라도, '불=뜨거움', '종이=타는 물질' 이라는 지식과 물리적 인과관계를 스스로 연결하여 위험을 회피합니다. 이는 단순한 정보의 조합이 아닌, 세상이 어떻게 돌아가는지에 대한 내재적인 모델을 갖추고 있음을 의미합니다. --- 한눈에 보는 비교 ┌─────┬─────────────┬────────────────────────────┐ │ 특징 │ 고도로 발전된 AI + 에이전트 │ 초기 단계 AGI │ ├─────┼─────────────┼────────────────────────────┤ │ 핵심 정체성 │ 명령 수행자 (Goal Executor) │ 의도 파악 및 목표 설정자 (Intent Interpreter) │ │ 목표 처리 │ 주어진 구체적 목표를 완벽하게 수행 │ 추상적 의도를 바탕으로 스스로 목표 설정/수정 │ │ 학습/기술 │ 특정 분야에 특화, 도구 사용에 능숙 │ 여러 분야의 지식을 융합하여 새로운 기술 창조 │ │ 자기 개선 │ 결과물(Output)을 수정 │ 사고방식/구조(Process/Architecture)를 수정 │ │ 추론 방식 │ 논리, 데이터 기반 추론 │ 상식과 인과관계 기반의 추론 │ └─────┴─────────────┴────────────────────────────┘ 결론적으로, 2027~2030년에 우리가 목격할 '초기 AGI'는 단순히 더 똑똑해진 AI가 아니라, 인간의 지시 없이도 스스로 '왜?'라고 질문하고, 자신만의 목표를 만들어 행동하며, 스스로를 성장시키는 질적으로 완전히 다른 존재의 첫 등장을 의미할 것입니다. 2026 01.31 > 자동차 회사의 노조가 "노조와 합의 없이 AI로봇을 공장에 들일 수 없다"는 선언을 하고 있어. 위의 내용에 적용하여 해결 방안을 만들어 줘. ✦ 네, 아주 현실적이고 시의적절한 시나리오입니다. 자동차 회사의 노조 선언은 앞으로 여러 산업 현장에서 벌어질 일의 축소판과도 같습니다. 이 문제를 앞서 나눈 대화의 해결 방안에 적용하여, '기업-노조-정부' 3자가 참여하는 '미래 지향적 대타협: AI 전환 파트너십 구축 방안'을 구체적으로 만들어 보겠습니다. 상황 분석: 노조의 선언은 '저항'이 아닌 '협상 요구' 먼저, 노조의 선언을 "기술을 맹목적으로 거부하는 러다이트 운동"으로 해석해서는 안 됩니다. 이는 일자리의 미래와 인간의 존엄성에 대한 조합원들의 지극히 합리적인 '불안'의 표현이자, 변화의 과정에서 소외되지 않고 주체적으로 참여하겠다는 강력한 '협상 요구'입니다. 따라서 해결 방안의 목표는 노조를 억누르는 것이 아니라, 이들을 AI 전환의 가장 중요한 '파트너'로 만드는 것이어야 합니다. 해결 방안: 'AI 전환 파트너십' 3자 협약 모델 이 모델은 '사회적 안전망'과 '산업적 가속 페달'의 원리를 특정 산업 현장에 맞게 구체화한 것입니다. 1. 기업의 역할: '이익 공유'와 '재교육 투자'를 통한 신뢰 구축 기업은 AI 로봇 도입으로 얻게 될 막대한 이익을 독점하는 대신, 그 과실을 노동자들과 공유하고 이들의 미래에 투자하는 모습을 보여주어야 합니다. ① 생산성 향상 이익 공유제 도입: * AI 로봇 도입으로 발생하는 비용 절감액과 생산성 향상분의 일정 비율(예: 20%)을 노사 합의로 'AI 전환 기금'으로 적립합니다. 이 기금은 아래의 재교육 및 전환 배치 프로그램의 재원으로 사용됩니다. ② 대규모 사내 재교육 및 '신(新)직무' 전환 배치: * 단순 조립 라인의 노동자를 해고하는 대신, 이들을 새로운 시대에 필요한 인력으로 재교육하여 전환 배치합니다. 이것이 바로 '기여 인센티브' 개념을 기업 내에서 실현하는 것입니다. * '로봇 유지보수 및 운영 전문가': 현장 경험이 풍부한 노동자들이 로봇의 일상적인 점검, 유지보수, 운영을 책임집니다. * 'AI 시스템 모니터링 및 평가자': 로봇의 생산 데이터를 모니터링하고, 로봇의 움직임이나 작업 결과가 비정상적일 때 이를 식별하고 평가하는 역할을 합니다. (예: "이 로봇의 용접 불량률이 높아지고 있다.") * '공정 데이터 라벨러 및 AI 트레이너': 숙련된 인간 노동자의 정교한 움직임과 문제 해결 과정을 데이터로 기록하고, 이를 AI가 학습할 수 있도록 가공(라벨링)합니다. 이는 AI 로봇의 완성도를 높이는 가장 중요한 '데이터 노동'이며, 기존 노동자들에게 새로운 고부가가치 직무를 제공합니다. 2. 노조의 역할: '저항의 주체'에서 '전환의 주체'로 노조는 고용 안정을 보장받는 대신, AI 도입에 협력하며 조합원들이 새로운 시대에 적응하도록 이끄는 역할을 맡습니다. ① 단계적 AI 도입 협력: * 회사가 제안한 '이익 공유' 및 '재교육' 계획을 신뢰하고, AI 로봇 도입 자체에 대한 반대를 철회합니다. 대신, 가장 위험하거나 반복적인 공정부터 로봇을 도입하는 '단계적 계획'을 회사와 함께 수립합니다. ② 재교육 프로그램 공동 설계 및 운영: * 회사가 제공하는 재교육 프로그램이 실효성이 있는지 감시하고, 현장 노동자들의 눈높이에 맞게 커리큘럼을 공동으로 설계하고 운영합니다. ③ '신(新)직무'에 대한 임금 및 단체 협약 체결: * 'AI 트레이너', '로봇 운영 전문가' 등 새롭게 만들어진 직무에 대한 적정한 임금 수준, 노동 조건, 권익 보호를 위한 새로운 단체 협약을 회사와 체결합니다. 노조의 역할이 '기존 일자리 사수'에서 '미래 일자리의 가치 창출 및 권익 보호'로 진화하는 것입니다. 3. 정부의 역할: '안전망' 제공과 '가속 페달' 지원 정부는 이 대타협이 원활하게 이루어지도록, 기업과 노조 양측 모두에게 인센티브를 제공하고 최후의 안전망을 구축합니다. ① 'AI 전환 투자 세제 혜택' 제공 (가속 페달): * 회사가 'AI 전환 기금'에 출연하는 금액과, 노동자 재교육에 투자하는 비용에 대해 파격적인 세액 공제 혜택을 줍니다. 이는 회사가 노동자를 해고하는 대신 재교육을 선택하도록 유도하는 강력한 당근이 됩니다. ② '전환기 고용보험' 적용 (안전망): * 불가피하게 전환 배치되지 못하는 소수의 노동자들을 위해, 일반 실업급여보다 더 긴 기간 동안, 더 높은 수준의 소득을 보장하는 특별 고용보험 프로그램을 적용합니다. 재취업 및 창업 지원도 병행합니다. ③ 국가적 '기본소득/기여 인센티브' 모델의 시범 사업으로 지정: * 이 자동차 공장의 사례를 국가 전체의 사회 시스템 전환을 위한 중요한 시범 사업으로 지정하고, 재교육 참여자나 신직무 종사자에게 국가 차원의 '기여 인센티브'를 추가로 제공하는 방안을 모색합니다. 결론 이러한 3자 파트너십을 통해, 노조의 선언은 더 이상 '위기'가 아닌 '기회'가 됩니다. 기업은 노사 갈등 없이 안정적으로 미래 경쟁력을 확보하고, 노동자들은 일자리를 잃는 대신 새로운 기술 시대의 주역으로 거듭나며, 정부는 사회적 혼란을 최소화하며 산업 구조 전환을 성공적으로 이끌 수 있습니다. 이는 AI 시대의 갈등을 해결하는 가장 현실적이고 상생 가능한 모델이 될 것입니다. 2026 01.28 은행앱 통합하면서 없어졌나보네요. ㄴ 비슷한 기능 찾으시는 분은 : 스마트 금융 계산기 검색해 보세요. https://play.google.com/store/apps/details?id=com.moneta.android.monetacalculator 2026 01.25 Ctrl+Z 를 이용해 뒤로 돌아기기 Undo 기능이 있는지 살펴보세요. 2026 01.23 쌀집계산기로 연립방정식 계산하기 - 크래머/크레이머/크라메르 공식 적용 https://allcalc.org/56739 3. 'x' 값 구하기 계산기 조작법 목표: x = Dx / D = [(c×e) - (b×f)] / [(a×e) - (b×d)] 계산하기 1단계: 분모 D 계산 (메모리 활용) 1 * 1 M+ : 메모리(M)에 1를 더합니다. (현재 M = 1) -0.1 * -0.2 M- : 메모리(M)에서 0.02를 뺍니다. (현재 M = 0.98 = 0.98) 이로써 메모리(MR)에는 분모 0.98가 저장됩니다. 2단계: 분자 Dx 계산 후 나누기 78000 * 1 : 78000를 계산합니다. = : GT에 더합니다. -0.1 * 200000 : -20000를 계산합니다. ± = : 부호를 뒤집어 GT에 넣습니다. // sign changer 버튼 사용 GT : GT를 불러옵니다. GT는 98000 (분자 Dx) 값입니다. ÷ MR = : 위 결과(98000)를 메모리(MR)에 저장된 분모 D(0.98)로 나누어 최종 x값 100,000를 구합니다. 4. 'y' 값 구하기 계산기 조작법 목표: y = Dy / D = [(a×f) - (c×d)] / [(a×e) - (b×d)] 계산하기 1단계: 분모 D 계산 (메모리 활용) 'x'에서와 분모는 동일하고 메모리(MR)에 0.98가 저장되어 있으므로 패스합니다. 2단계: 분자 Dy 계산 후 나누기 GT ± = : GT를 불러오고 부호를 뒤집어 GT에 더합니다. GT가 0으로 리셋됩니다. 【AC】를 누르면 M은 유지되고 GT만 리셋되는 계산기도 있으니 확인해 보세요. 1 * 200000 : 200000를 계산합니다. = : GT에 더합니다. 78000 * -0.2 : -15600를 계산합니다. ± = : 부호를 뒤집어 GT에 넣습니다. GT : GT를 불러옵니다. 215600 (분자 Dy) 값입니다. ÷ MR = : 위 결과(215600)를 메모리(MR)에 저장된 분모 D(0.98)로 나누어 최종 y값 220,000를 구합니다. x, y 값을 이용해 최종 결과를 구합니다. 2026 01.18