산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> MATLAB

MATLAB - 대수학

지금까지 모든 예제가 MATLAB과 GNU(옥타브라고도 함)에서 작동하는 것을 보았습니다. 그러나 기본적인 대수 방정식을 풀기 위해서는 MATLAB과 Octave가 약간 다르기 때문에 별도의 섹션에서 MATLAB과 Octave를 다루도록 하겠습니다.

대수식의 인수분해와 단순화에 대해서도 논의할 것입니다.

MATLAB에서 기본 대수 방정식 풀기

해결 함수는 대수 방정식을 푸는 데 사용됩니다. 가장 간단한 형태의 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

MATLAB에서 이차 방정식 풀기

해결 함수는 고차 방정식도 풀 수 있습니다. 이차 방정식을 푸는 데 자주 사용됩니다. 이 함수는 방정식의 근을 배열로 반환합니다.

다음 예는 이차 방정식 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

MATLAB에서 고차 방정식 풀기

해결 함수는 고차 방정식도 풀 수 있습니다. 예를 들어, 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

MATLAB에서 연립방정식 풀기

해결 함수는 또한 둘 이상의 변수를 포함하는 연립방정식의 해를 생성하는 데 사용할 수 있습니다. 이 사용법을 보여주기 위해 간단한 예를 들어보겠습니다.

방정식을 풀자 -

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

MATLAB에서 방정식 확장 및 수집

확장 그리고 수집 함수는 각각 방정식을 확장하고 수집합니다. 다음 예는 개념을 보여줍니다 -

많은 기호 함수로 작업할 때 변수가 기호임을 선언해야 합니다.

스크립트 파일을 만들고 다음 코드를 입력하십시오 -

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

  1. MATLAB - 개요
  2. MATLAB - 기본 구문
  3. MATLAB - 변수
  4. MATLAB - 명령
  5. MATLAB - 데이터 유형
  6. MATLAB - 연산자
  7. MATLAB - 벡터
  8. MATLAB - 행렬
  9. MATLAB - 배열
  10. MATLAB - 콜론 표기법