MATLAB
지금까지 모든 예제가 MATLAB과 GNU(옥타브라고도 함)에서 작동하는 것을 보았습니다. 그러나 기본적인 대수 방정식을 풀기 위해서는 MATLAB과 Octave가 약간 다르기 때문에 별도의 섹션에서 MATLAB과 Octave를 다루도록 하겠습니다.
대수식의 인수분해와 단순화에 대해서도 논의할 것입니다.
해결 함수는 대수 방정식을 푸는 데 사용됩니다. 가장 간단한 형태의 solve 함수는 따옴표로 묶인 방정식을 인수로 취합니다.
예를 들어, 방정식 x-5 =0
에서 x를 풉니다.solve('x-5=0')
MATLAB은 위의 명령문을 실행하고 다음 결과를 반환합니다 -
ans = 5
풀이 함수를 −
로 호출할 수도 있습니다.y = solve('x-5 = 0')
MATLAB은 위의 명령문을 실행하고 다음 결과를 반환합니다 -
y = 5
방정식의 우변을 포함하지 않을 수도 있습니다. −
solve('x-5')
MATLAB은 위의 명령문을 실행하고 다음 결과를 반환합니다 -
ans = 5
방정식에 여러 기호가 포함된 경우 MATLAB은 기본적으로 x에 대해 풀고 있다고 가정하지만 풀이 함수의 형식은 −
입니다.solve(equation, variable)
여기서 변수를 언급할 수도 있습니다.
예를 들어, v – u – 3t 2 방정식을 풉니다. =0, v. 이 경우에는 −
로 작성해야 합니다.solve('v-u-3*t^2=0', 'v')
MATLAB은 위의 명령문을 실행하고 다음 결과를 반환합니다 -
ans = 3*t^2 + u
뿌리 함수는 Octave에서 대수 방정식을 푸는 데 사용되며 위의 예를 다음과 같이 작성할 수 있습니다. -
예를 들어, 방정식 x-5 =0
에서 x를 풉니다. 라이브 데모roots([1, -5])
Octave는 위의 명령문을 실행하고 다음 결과를 반환합니다 -
ans = 5
풀이 함수를 −
로 호출할 수도 있습니다. 라이브 데모y = roots([1, -5])
Octave는 위의 명령문을 실행하고 다음 결과를 반환합니다 -
y = 5
해결 함수는 고차 방정식도 풀 수 있습니다. 이차 방정식을 푸는 데 자주 사용됩니다. 이 함수는 방정식의 근을 배열로 반환합니다.
다음 예는 이차 방정식 x 2 를 풉니다. -7x +12 =0. 스크립트 파일을 만들고 다음 코드를 입력하십시오 -
eq = 'x^2 -7*x + 12 = 0'; s = solve(eq); disp('The first root is: '), disp(s(1)); disp('The second root is: '), disp(s(2));
파일을 실행하면 다음과 같은 결과가 표시됩니다. -
The first root is: 3 The second root is: 4
다음 예는 이차 방정식 x 2 를 풉니다. -7x +12 =옥타브에서 0. 스크립트 파일을 만들고 다음 코드를 입력하십시오 -
라이브 데모s = roots([1, -7, 12]); disp('The first root is: '), disp(s(1)); disp('The second root is: '), disp(s(2));
파일을 실행하면 다음과 같은 결과가 표시됩니다. -
The first root is: 4 The second root is: 3
해결 함수는 고차 방정식도 풀 수 있습니다. 예를 들어, 3차 방정식을 (x-3) 2 로 풉니다. (x-7) =0
solve('(x-3)^2*(x-7)=0')
MATLAB은 위의 명령문을 실행하고 다음 결과를 반환합니다 -
ans = 3 3 7
고차 방정식의 경우 근에는 많은 항이 포함되어 있습니다. 이러한 근의 숫자 값은 두 배로 변환하여 얻을 수 있습니다. 다음 예는 4차 방정식 x 4 를 풉니다. − 7x 3 + 3x 2 − 5x + 9 =0.
스크립트 파일을 만들고 다음 코드를 입력하십시오 -
eq = 'x^4 - 7*x^3 + 3*x^2 - 5*x + 9 = 0'; s = solve(eq); disp('The first root is: '), disp(s(1)); disp('The second root is: '), disp(s(2)); disp('The third root is: '), disp(s(3)); disp('The fourth root is: '), disp(s(4)); % converting the roots to double type disp('Numeric value of first root'), disp(double(s(1))); disp('Numeric value of second root'), disp(double(s(2))); disp('Numeric value of third root'), disp(double(s(3))); disp('Numeric value of fourth root'), disp(double(s(4)));
파일을 실행하면 다음 결과가 반환됩니다. -
The first root is: 6.630396332390718431485053218985 The second root is: 1.0597804633025896291682772499885 The third root is: - 0.34508839784665403032666523448675 - 1.0778362954630176596831109269793*i The fourth root is: - 0.34508839784665403032666523448675 + 1.0778362954630176596831109269793*i Numeric value of first root 6.6304 Numeric value of second root 1.0598 Numeric value of third root -0.3451 - 1.0778i Numeric value of fourth root -0.3451 + 1.0778i
마지막 두 근은 복소수입니다.
다음 예는 4차 방정식 x 4 를 풉니다. − 7x 3 + 3x 2 − 5x + 9 =0.
스크립트 파일을 만들고 다음 코드를 입력하십시오 -
라이브 데모v = [1, -7, 3, -5, 9]; s = roots(v); % converting the roots to double type disp('Numeric value of first root'), disp(double(s(1))); disp('Numeric value of second root'), disp(double(s(2))); disp('Numeric value of third root'), disp(double(s(3))); disp('Numeric value of fourth root'), disp(double(s(4)));
파일을 실행하면 다음 결과가 반환됩니다. -
Numeric value of first root 6.6304 Numeric value of second root -0.34509 + 1.07784i Numeric value of third root -0.34509 - 1.07784i Numeric value of fourth root 1.0598
해결 함수는 또한 둘 이상의 변수를 포함하는 연립방정식의 해를 생성하는 데 사용할 수 있습니다. 이 사용법을 보여주기 위해 간단한 예를 들어보겠습니다.
방정식을 풀자 -
5x + 9y =5
3x – 6y =4
스크립트 파일을 만들고 다음 코드를 입력하십시오 -
s = solve('5*x + 9*y = 5','3*x - 6*y = 4'); s.x s.y
파일을 실행하면 다음과 같은 결과가 표시됩니다. -
ans = 22/19 ans = -5/57
같은 방법으로 더 큰 선형 시스템을 풀 수 있습니다. 다음 방정식 세트를 고려하십시오 -
x + 3y -2z =5
3x + 5y + 6z =7
2x + 4y + 3z =8
우리는 'n' 미지수에서 'n' 선형 방정식 시스템을 풀기 위해 약간 다른 접근 방식을 사용합니다. 이 사용법을 보여주기 위해 간단한 예를 들어보겠습니다.
방정식을 풀자 -
5x + 9y =5
3x – 6y =4
이러한 선형 방정식 시스템은 단일 행렬 방정식 Ax =b로 작성할 수 있습니다. 여기서 A는 계수 행렬이고 b는 선형 방정식의 우변을 포함하는 열 벡터이며 x는 다음과 같이 솔루션을 나타내는 열 벡터입니다. 아래 프로그램에 표시된 -
스크립트 파일을 만들고 다음 코드를 입력하십시오 -
라이브 데모A = [5, 9; 3, -6]; b = [5;4]; A \ b
파일을 실행하면 다음과 같은 결과가 표시됩니다. -
ans = 1.157895 -0.087719
같은 방식으로 아래와 같이 더 큰 선형 시스템을 풀 수 있습니다. -
x + 3y -2z =5
3x + 5y + 6z =7
2x + 4y + 3z =8
확장 그리고 수집 함수는 각각 방정식을 확장하고 수집합니다. 다음 예는 개념을 보여줍니다 -
많은 기호 함수로 작업할 때 변수가 기호임을 선언해야 합니다.
스크립트 파일을 만들고 다음 코드를 입력하십시오 -
syms x %symbolic variable x syms y %symbolic variable x % expanding equations expand((x-5)*(x+9)) expand((x+2)*(x-3)*(x-5)*(x+7)) expand(sin(2*x)) expand(cos(x+y)) % collecting equations collect(x^3 *(x-7)) collect(x^4*(x-3)*(x-5))
파일을 실행하면 다음과 같은 결과가 표시됩니다. -
ans = x^2 + 4*x - 45 ans = x^4 + x^3 - 43*x^2 + 23*x + 210 ans = 2*cos(x)*sin(x) ans = cos(x)*cos(y) - sin(x)*sin(y) ans = x^4 - 7*x^3 ans = x^6 - 8*x^5 + 15*x^4
기호가 있어야 합니다. 확장을 제공하는 패키지 그리고 수집 방정식을 확장하고 수집하는 함수입니다. 다음 예는 개념을 보여줍니다 -
많은 기호 함수로 작업할 때 변수가 기호라고 선언해야 하지만 Octave는 기호 변수를 정의하는 다른 접근 방식을 사용합니다. 죄의 사용에 주의하십시오. 및 비용 , 기호 패키지에도 정의되어 있습니다.
스크립트 파일을 만들고 다음 코드를 입력하십시오 -
% first of all load the package, make sure its installed. pkg load symbolic % make symbols module available symbols % define symbolic variables x = sym ('x'); y = sym ('y'); z = sym ('z'); % expanding equations expand((x-5)*(x+9)) expand((x+2)*(x-3)*(x-5)*(x+7)) expand(Sin(2*x)) expand(Cos(x+y)) % collecting equations collect(x^3 *(x-7), z) collect(x^4*(x-3)*(x-5), z)
파일을 실행하면 다음과 같은 결과가 표시됩니다. -
ans = -45.0+x^2+(4.0)*x ans = 210.0+x^4-(43.0)*x^2+x^3+(23.0)*x ans = sin((2.0)*x) ans = cos(y+x) ans = x^(3.0)*(-7.0+x) ans = (-3.0+x)*x^(4.0)*(-5.0+x)
요소 함수는 표현식을 인수분해하고 단순화합니다. 함수는 표현식을 단순화합니다. 다음 예는 개념을 보여줍니다 -
스크립트 파일을 만들고 다음 코드를 입력하십시오 -
syms x syms y factor(x^3 - y^3) factor([x^2-y^2,x^3+y^3]) simplify((x^4-16)/(x^2-4))
파일을 실행하면 다음과 같은 결과가 표시됩니다. -
ans = (x - y)*(x^2 + x*y + y^2) ans = [ (x - y)*(x + y), (x + y)*(x^2 - x*y + y^2)] ans = x^2 + 4
MATLAB
MATLAB은 내림차순으로 정렬된 계수를 포함하는 행 벡터로 다항식을 나타냅니다. 예를 들어, 방정식 P(x) =x4 + 7x3 - 5x + 9는 −로 나타낼 수 있습니다. p =[1 7 0 -5 9]; 다항식 평가 다중 함수는 지정된 값에서 다항식을 평가하는 데 사용됩니다. 예를 들어, 이전 다항식 p를 평가하려면 , x =4에서 −를 입력합니다. 라이브 데모 p = [1 7 0 -5 9]; polyval(p,4) MATLAB은 위의 명령문을 실행하고 다음 결과를 반환합니다. - ans = 693 MATLAB은 p
Simulink는 MATLAB과 통합된 동적 및 임베디드 시스템을 위한 시뮬레이션 및 모델 기반 설계 환경입니다. MathWorks에서 개발한 Simulink는 다중 도메인 동적 시스템을 모델링, 시뮬레이션 및 분석하기 위한 데이터 흐름 그래픽 프로그래밍 언어 도구입니다. 기본적으로 사용자 정의 가능한 블록 라이브러리 세트가 있는 그래픽 블록 다이어그램 도구입니다. 이를 통해 MATLAB 알고리즘을 모델에 통합하고 추가 분석을 위해 시뮬레이션 결과를 MATLAB으로 내보낼 수 있습니다. Simulink는 −를 지원합니다. 시스