728x90

1. 분할차분법

2. 보간 다항식의 오차

3. 뉴턴의 전향 차분 공식

4. 접촉 보간법

 

 

 

 

 

분할 차분표를 사용하는 이유

- 뉴턴 공식에 있는 모든 분할 차분을 간단하게 구할수 있기 때문

 

 

분할 차분법의 개념

- 서로다른 n+1개의 점 x0, x1, ... xn에 대해서 함수 f(x)와 함수 값이 같은 n차 이하의 다항식 P_n(x)가 다음과 같이 주어질때(뉴턴 형이라 부름)

- x 값에 따라 상수 항들을 순서대로 구할 수 있게 됨

 

 

중복된 계산식(예 : x1-x0)을 줄이기 위해, 분할 차분 기호 사용

 

 

분할 차분표의 일반화

- n차 분할 차분 공식을 이용하여 분할차분표라는 표를 제작

n차 분할 차분 공식

 

분할 차분표를 사용하면?

- 뉴턴 공식에 있는 모든 분할 차분을 간단한 방법으로 구할 수 있음

- 뉴턴 공식을 사용하여 P_n(x)를 구할 때, 분할 차분표의 각 열에서 처음 항들이 그 다항식의 계수가 됨

 

 

 

 

보간 다항식 오차의 발생 원인

- 실제 함수를 알수없는 상황에서 임의의 점에 대한 값을 얻기 위해 사용하는 보간 다항식은 실제 함수와 달라 오차 발생

 

보간 다항식의 오차

- f(x)가 폐구간 [a, b]에서 정의된 함수이고, x0, x1, ... xn을 구간에 있는 n + 1개의 서로 다른 점이라할때

- 차수 n보다 크지않은 다항식 P_n(x)를 점 x0, ... xn에서 f(x)의 보간 다항식이라 한다면

=> 오차 = 실제 함수 - 보간 다항식

 

- bar_x를 주어진 점 x0, x1, ... xn이 아닌 임의의 점이며

- 차수가 n+1보다 크지 않은 다항식 p_(n+1)(x)를 점 x0, x1, ..xn, bar_x 에서 f(x)의 보간 다항식이라 한다면

 

 

뉴턴 공식에 따라 아래와 같이 정리됨.

 

앞에서 나온 식을 통해 bar_x != x0, x1, ... xn 인 경우에 대해

-> 임의의 점 bar_x에 대한 보간 다항식 오차

=> f(bar_x)를 알아야 e_n(bar_x)를 구할 수 있음

 

 

f(bar_x)를 모르면 e_n(bar_x)를 구할수 없는가?

- 함수 f(x)가 구간 [a,b]에서 정의된 함수이고 (a, b)에서 k차 미분 가능하다고 할때, x0, .. xk가 [a,b] 안에 있는 (k+1)개의 서로 다른 점이라면

를 만족하는점 epsilon in (a, b) 가 존재한다.

 

 

 

보간 다항식의 오차 2

- 함수 f가 폐구간 [a, b]에 정의된 함수

- 개구간 (a, b)에서 (n+1)차 미분 가능

-> P_n(x) 차수가 n보다 크지 않고 [a, b] 안에 있는 n+1개의 점 x0, x1 ..., xn에 대해 f(x)의 보간 다항식이라 한다면 [a, b]안의 임의의 점 bar_x에 대해

 

=> epsilon in (a,b) 가 존재

 

 

epsilon은 bar_x에 따라 결정되고 공식을 사용하려면?

- epsilon과 f(x)의 (n+1)차 도함수 f^(n+1) (x)를 일아야함

- epsilon은 구간 (a, b)안에 있는 어떤 점이라는 사실만 알고 실제로는 정확한 epsilon을 알 수 없음.

- f^(n+1) (x)도 모르는 경우가 많음

=> [a, b]에서 |f^(n+1) (x)|의 상계 (upper bound)를 알면 보간 다항식 오차의 한계를 구할 수 있음.

 

 

 

 

 

 

 

 

뉴턴의 전향 차분 공식

- [a, b] 안의 점 x0, ... xn에서 함수 f(x)의 보간 다항식 Pn(x)

- 분할 차분 f([x0, ..., xn]을 계싼하고 뉴턴 공식 사용

- 소구간들의 길이가 같은 경우 분할 차분보다 더 간단한 전향 차분을 사용하여 보간 다항식 P_n(x)를 구하는 방법

=> 점 a = x0 < x1 < x2 ... < xn = b에 의해 만들어 지는 각 소구간의 길이가 같다고 가정

=> 구간 [a, b]를 N등분 하고 h= (b-a)/N으로 놓으면?

 

 

각 점에서 함수 값을 안다고 가정하면

 

 

[a, b]에 있는 임의의 점 x를 x0 + sh로 나타낼수 있으므로

 

 

- 선형 변수 변환 공식을 사용하여, 차수가 n인 x의 다항식 -> 차수 n인 s의 다항식

 

 

 

전향 차분은 다음과 같이 정의

 

전향 차분과 분할 차분의 관계

 

 

P_n(x)를 점 x_k, x_k+1, ..., x_(k+n)에서 f(x)의 보간 다항식 이라면

위 식을 뉴턴 공식에 대입하면

 

 

 

 

아래의 식에 따라

 

 

보간다항식은 다음과 같이 정리가 된다.

 

 

이항 함수 binomial function을 이용

- 임의의 실수 y와 임의의 정수 i >= 0 에 대해 이항함수 (y; i)를 다음과 같이 정의

=> y가 양의 정수면 (y; i)는 이항 계수 binomial coefficient가 됨

 

 

뉴턴의 전향 차분 공식

- 점 x_k + i h (i = 0, 1, ..., n)에서 f(x)의 보간 다항식에 대한 뉴턴의 전향 차분 공식 (Forward difference formula)라 부름.

 

 

 

뉴턴의 전향 차분 공식 예시

- k = 0인경우, 보간 점을 x_0, x_1, ..., x_n일 때

- 위 식의 계수는 전향 차분표로 쉽게 구할 수 있음

 

 

function y = NewtonDiff(xd, yd, x)

  nd = length(xd);
  F = zeros(nd, nd);
  F(:, 1) = yd(:);

  for j = 2:nd
      for i= 1:nd-j+1
			F(i,j) = (F(i+1, j-1) - F(i, j-1))/(xd(i+j-1)-xd(i));
      end
  end


  y = F(1, 1);
  ytemp = 1;

  for j=2:nd
      ytemp = ytemp*(x - xd(j-1));
      y = y + F(1, j)*ytemp;
  end

end
x = [2 3 4 5 6];
y =[4.8 9.4 19.2 36.6 58];

NewtonDiff(x, y, 2.5)

 

 

 

 

 

접촉 보간

- 앞에서 보간 다항식을 구할 떄 구간 [a, b]안에 있는 점 x0, x1, x2 , .. xn이 서로 다른 경우에만 고려

- 점들이 서로 다른점이라 가정하지 않고 보간 다항식을 구하는 방법

- 점 x0, ... xk가 구간 [a, b]에서 서로 다른 점일때 -> f(x)의 k차 분할 차분 f[x0, .. xk]를 차수가 k보다 크지않은 보간 다항식 p_k(x)의 최고차 계수 (x^k의 계수) 계수로 정의

 

 

서로 같은 점들이 있는 경우 P_k(x_i) = f(x_i)의 의미

- 점 x0, ..., xk 중 m번째 나타나는 점 x - f^(j) (x) = g^(j) (x) => j = 0, 1, ..., m-1

- f(x), g(x)는 점 x0, x1, ... xk에서 같다고 정의 

=> 보간 다항식이 한 점 c에서 f(x)와 (m+1)번 접촉(m번 같을 때) 접촉 보간

 

 

 

스플라인

- 매끄러운 곡선을 그리기위해 제도하는 도구에서 유래

- 급격하게 변하는 데이터를 나타내는데 적합한 방법

- 두 점 사이의 각 구간에 대해 스플라인으로 불리는 낮은 차수의 다항식을 이용하여 점들을 연결

 

 

 

 

 

 

 

 

 

 

 

 

300x250
728x90

1. 보간 법

2. 다항식에 의한 보간법

 

 

보간법의 정의

- 아직 측정하지 않거나 할수 없는 값을 구해야하는 경우 사용

-> 존재하지 않는 데이터를 만들어내는 방법

 

 

보간법에 사용되는 함수

- 다항식 : 2개이상의 단항식을 대수의 합으로 연결한 식

 

선형 보간법

- 보간 법 중가장 간단

- 주어진 두 점을 이은 직선의 방정식을 근사 함수로 사용하는 방법

 

선형 보간법 정의

- 함수 f(x)가 폐구간 [a, b]위에 정의되고, 이 구간에 있는 n개의 점 x1, x2, ..., xn에 대해 알면

- (xi, f(xi)) , (xi+1 , f(x+1)) 을 지나는 직선의 방정식

 

선형 보간법 사용법

1. 두개의 점이 주어진 경우

 - 두점을 지나는 함수 f(x)를 직전의 방정식으로 구함

2. p(x) = a0 + a1x가 직선의 방정식인 경우

 

- 데이터 점 들 사이 간격이 작을수록 더 좋은 근사값을 얻게 됨

 -> 간격이 감소함으로써 연속 함수를 직선으로 근사시키기가 좋기 때문

 

 

자연 로그 ln 2를 계산하기

- ln 1 = 0과 ln 6 = 1.7917595 사이에서 다음과 같이 계산

 

- ln 1 = 0 과 ln 4 = 1.3862944 사이에서(점 사이 간격이 작은 경우) 다음과 같이 계산

 

- ln 2의 참 값 : 0.69314718

 

Matlab에서 선형 보간법 사용하기

clc;
clear all;

x = [40 48 56 64 72 80];                  % x 데이터 입력
y = [1.33 1.67 2.08   2.36 2.71 3.19];    % y 데이터 입력
plot(x, y, 'o-')    % 그래프 그려줌
interp1(x, y, 52)   % x값이 52일 때 y에 해당하는 값을 구함

 

 

다항식을 찾기 위한 보간 방법

- 미정 계수법, 라그랑주 보간법, 뉴턴 보간법 등

 

 

다항식에 의한 보간법

- (n+1) 개의 점을 지나는 다항식은 n차 이하의 유일한 다항식으로 표시 가능

 

다항식을 찾아내는 방법

- 미정 계수법

- 라그랑주 보간법

- 뉴턴 보간법

 

 

미정 계수법

- 다항식을 찾아내는 가장 보편적인 방법

- 아래의 보간 다항식이 주어지면

- 위 식을 아래와 같은 행렬로 표현 가능

 

-> 가우스 소거법 등으로 계산하여 a0, a1, ... an을 구하면 됨

 

 

 

가우스 소거법

- n 개의 방정식과 n 개의 미지수로 이루어진 일반적인 선형 연립방정식 Ax = b의 해를 구하는 방법

- 그러나 계산시간이 많이 걸리며 오차가 많이 발생

-> 보간 다항식을 다르게 표현하여 계산 과정을 줄여야함

 

오차를 작게 하는 방법

- 라그랑주 보간법

- 뉴턴 보간법

 

 

 

 

라그랑주 보간법

- 여러 개의 점들을 지나는 곡선으로 연결하는 방법

1. 여러개의 점들이 주어짐

2. 이 점들을 지나는 다항식 구함

3. 이 다항식으로 주어진 점에 대한 보간 값을 구함

 

 

 

- 서로 다른 두점 (x0, y0), (x1, y1)을 지나는 다항식은 많으나 그 중 1차 다항식(직선) y = ax + b, 하나만 존재

- 세 점 (x0, y0), (x1, y1), (x2, y2)를 지나는 2차 다항식 y = ax^2 + bx + c도 단 하나만 존재

-> n + 1개의 점 (xi, yi)를 지나는 n차 다항식

 

- 다항식 g(x)에 (n+1)개의 점들을 대입하여 다음 n+1개의 연립 방정식을 구할 수 있음.

 

연립 방정식을 풀면

- 계수 a0, a1, ..., an을 구할 수 있음

- 다항식 g(x)를 구하여 다른값 x값에 대한 보간 값을 구하는데 사용 가능

=> 라그랑주 보간법은 연립방정식을 풀지 않고 다항식을 결정할 수 있어 정확성을 높일 수 있음

 

 

 

서로 다른 xi, i = 0, 1, ..., n에서 n + 1개의 점 (xi, f(xi))를 지나는 n차 보간 다항식은?

 

여기서 L_i(x)는 다음과 같음

 

 

두 점 (s,1), (t, 0)을 지나는 일차 다항식은 L(x) = (x-t)/(s-t)로 표현 가능

- L_0(x)는 (x0, 1), (x1, 0)을, L_1(x)는 (x0, 0), (x1, 1)을 지나는 1차 다항식은 다음과 같음

1차 라그랑주 다항식

 

두 점 (x0, y0), (x1, y1)을 지나는 1차 다항식

1차 라그랑주 보간 다항식

 

라그랑주 보간 다항식의 일반화

- P_n(x_i) = y_i 를 만족하므로 n + 1개의 점 (x_i, y_i)를 지나는 유일한 n차 다항식

 

 

 

라그랑주 보간법의 문제점

- 차수가 커지면 참값을 기대할 수 없을 정도로 큰 오차가 발생(runge 현상)

-> 차수가 낮은 경우에만 사용

 

 

뉴턴 보간법 필요성

- 라그랑주 보간법의 문제를 보완한 보간법

- 하나의 보간을 위해 필요한 계산량이 필요

- 데이터 수 증가시 바로 직전 결과를 사용하지 못함

-> 에러 계산이 용이하지 않은 문제점을 해결함

 

 

뉴턴 보간법

- 기존 데이터를 기초로 차분표 구성

- 차분표로 보간 공식을 구함

- 새로운 데이터가 추가되어도 그 차수를 늘리기 쉬움

- 라그랑주 보간 다항식과 형태만 다르나 같은 다항식

-> 한점이 추가되는 경우 : 라그랑주 보간 다항식은 처음부터 다시 구해야함. 뉴턴 보간법은 이전 보간 다항식을 유지하고 마지막 계수만 다시 추가

 

1차 다항식 y = ax + b의 경우

- y= a_0 + a_1(x-x_0)로 표현

 

서로 다른 (n+1)개의 점 x_0, ..., x_n에 대해 f(x)와 함수값이 같은 n차 이하 다항식 P_n(x)는 다음과 같음

 

점 (x_0, y_0), (x_1, y_1), (x_2,y_2)를 지나는 다항식은?

 

 

계수 a_0, a_1, a_2를 구하기 위해 P_2(x_0) = y_0, p_2(x_1) = y_1, p_2(x_2) = y_2 이므로 다항식에 대입하면

 

 

 

분할 차분 기호 [ ] 를 이용하여 P_n(x)를 다시 표현하면 ...

뉴턴의 분할 차분 보간 다항식

 

 

보간 다항식의 존재와 유일성 1

- 연속 함수 중 하나가 다항식이고, 이 다항식은 수치해석 거의 모든 분야에서 함수들의 근사값을 구하는데 사용

- 보간법 -> 근사함수로서 다항식을 사용 => 보간 다항식

 

보간 다항식의 존재와 유일성 2

- x0, x1, x2, ... , x0을 구간 [a,b]안에 있는 (n+1)개의 서로 다른 점이라 할 때,

- f(x)가 [a, b]위에서 정의된 함수이고, 각 점에서 함수 값을 알때,

- 주어진 (n+1)개의 점에서 함수 값과 같게되는 차수가 n보다 크지 않는 보간 다항식을 구할 때,

=> 이 조건들을 만족하는 보간 다항식 p(x)는 단 1개만 존재

 

 

다음 데이터가 주어질때 라그랑주 보간다항식을 이용하여 x가 2.5, 3.5일때 y 값을 구하라

 

 

function y = Lagrange(xd, yd, x)

nd = length(xd);
y = 0;
for i=1:nd
	p=1;
    for j=1:nd
    	if(i~=j)
        	p=p*(x-xd(j))/(xd(i)-xd(j));
        end
     end
     y = y+p*yd(i);
end

 

xd=[2 3 45 6];
yd=[4.8 9.4 19.2 36.6 58];

Lagrange(xd, yd, 2.5)

Lagrange(xd, yd, 3.5)

 

 

 

 

300x250
728x90

수의 표기법

- 명수법과 기수법

 

진법

- 2진법, 8진법, 10진법, 16진법

 

수의 표기법

- 명수법 : 하나, 둘, 셋 처럼 수를 말로 나타내는것

- 기수법 : 1, 2, 3 과같이 수를 기호로 나타내는것 -> 10진법, 2진법, 5진법, 12진법 등 존재

 

 

소수점 표시법에 따라 오차가 발생하는 이유

- 컴퓨터에서는 모든 소수를 정규형태로 변환시켜 처리하기 때문. 무한한 소수의 뒷자리를 없앰

 

 

컴퓨터 기억장치나 연산장치는 양(+), 음(-)만을 구별할수있는 비트들로 구성

- >컴퓨터는 2진법 사용

 

컴퓨터에서 수를 표현할 때

- 정수 : 고정 소수점 표시법

- 실수 : 부동 소수점 표시법

 

고정 소수점 표시법

- 소수점을 항상 일정한 위치에 놓는 표시법

- 소수점 위치를 그 수 제일 오른쪽에 있다고 가정하여 정수 계선에서만 사용

 

부동 소수점 표시법

- 소수점 위치를 일정하게 하지 않고 따로 지시해주는 표시법

- 실수 계산에서 주로 이방법 사용

- 32비트를 한단어로 사용하는 경우 -> 0비트는 부호, 1~7비트는 지수, 8 ~31비트는 가수를 나타냄

 

 

정규형태

- 컴퓨터에서 실수를 기억시킬때는 가수부의 제일 높은 자리에 0 이외의 유효숫자가 올때까지 지수값을 변환시켜 기억함

- 이렇게 표시된 수를 정규형태라함.

- 컴퓨터는 모든 숫자를 반드시 정규형태로 처리

- 단정도 표현 : 32비트를 한단어로 사용 -> 가수부 7자리 정도의 10진수를 기억

- 배정도 표현 : 64비트를 한 단어로 사용 -> 가수부에 16자리 정도 10진수를 기억시킴

 

전환 오차

- 컴퓨터에 입력하거나 출력하는 과정에서 생기는 오차

 

 

컴퓨터 프로그래밍 하는 경우 

- 실수를 입력한 다음 그 결과를 출력할 때 값이 변하는 경우가 존재

ex) (단정도 표현) 0.23456789 -> 0.23456790

=> 단정도 표현과 배정도 표현 모두에서 오차 발생 가능

- 일반적으로 배정도 표현에서 오차가 더 적음

 

 

 

(387.620000)_10 가 컴퓨터에 입력되고 출력되는 과정

- 컴퓨터는 387.62를 16 진수로 바꿈

 -> (387.620000)_10

  = (183.9EB851EB851)_16

- 정규 형태로 표시하면

    (0.1839EB851EB851...)x16^3

* 컴퓨터가 16진법 컴퓨터라 가정하면 6자리 미만은 버리게 됨

 -> (0.1839EB) x 16^3

 -> 입력되는 수 387.62는 183.9EB_16로 저장

* 출력하게 되면 10진수로 다시 고쳐서 내보냄

 - 183.9EB_16 = 387.6198730_10

-> 이 과정에서 오차 387.60000 - 387.61987 = 0.00013이 발생

-> 이때 상대 오차는 0.00013/387.61987 = 3.35 x 10^-7

 

 

 

버림과 반올림 과정에서 발생하는 오차는 왜 발생하는가

- 컴퓨터가 저장된 소수를 버림이나 반올림하기 위해 읽어올 때 소숫자리 보다 작은 가수를 취하여 읽는 경우

- 버려지는 값이 발생할수 있으므로 버림과 반올림에 의해 오차가 발생

 

 

버림과 반올림 과정에서 생기는 오차

23.4673

- 소수 3째 자리서 반올림 23.47

- 2째 자리 미만 버림 23.46

- 정규형태로 표현하면 0.234673 X 10^2

 

10진법 계산기가 4자리 가수부분만 취한다고 가정하는 경우 0.2346만 취하게 됨.

0.234673 x 10^2 = (0.2346 + 0.000073) x 10^2

                            = (0.2346 + [0.73 x 10^-4]) x 10^2

 

 

 

 

 

 

 

 

 

 

 

 

300x250
728x90

매트랩에서 생성 가능한 그래프

- 선형축 표준 그래프

- 3차원 윤곽 및 망 그래프

- 막대 그래프

- 계단 그래프

- 극좌표 그래프

- 로그 및 세미로그 축 그래프 등

 

그래프

- 정보 표현에 사용도는 유용한 도구

- 여러 유형을 생성하는데 사용할수 있는 많은 명령어가 존재

 

 

2차원 그래프

- 그래프 일련 번호

- 그래프 이름

- 마커

- 텍스트 레이블

- y축 레이블

- x축 레이블

- 범례

- 그래프 제목

 

 

 

x = [10:0.1:22];
y = 95000./x.^2;
xd = [10:2:22];
yd =[950 640 460 340 250 180 140];

plot(x, y, '-', 'LineWidth', 1.);
xlabel('\fontname{돋움} distance(cm)');
ylabel('\fontname{돋움} strength(lux');

axis([8 24 0 1200]);
title('\fontname{바탕} \bf distance function(strength of light)', 'FontSize', 14);
text(14,700, 'compare with theory and experiment','EdgeColor','r','LineWidth',2);
grid on, hold on;

plot(xd, yd, 'ro--', 'LineWidth', 1.0, 'MarkerSize', 10);
legend('theory', 'experiment');
set(gcf, 'Name', 'Fig.5-8') %set( ..., 'NumberTitle', 'off')
hold off

 

plot 명령어

- plot(x, y)

- 2그래프를 생성하는 명령어

- x, y 두벡터로 형성되는 순서쌍을 그래프 상에 점으로 나타내고 점들을 직선으로 연결

ex

x=[1 2 3 5 7 7.5 8 10];
y=[2 6.5 7 7 5.5 4 6 8];
plot(x, y)
grid on;

 

 

그래프 형식 지정

- 선 색이나 종류 등을 지정한다면

- plot 명령어 옵션으로 지정 가능

 

plot(x, y, 'line specifiers', 'propertyName', PropertyValue);

 

 

실습

clc;
clear all;

t = 0:0.4:2*pi;
plot(t, sin(t), '-rs', 'LineWidth', 2);
hold on;
plot(t, sin(t-pi/2), '--mo');
plot(t, sin(t-pi), ':b*');
hold off
axis tight

 

 

 

예제 풀기

y = x^2 + sin(x) 그래프 그리기. 선두께는 1, 빨간선, +- 마커

 

 

데이터를 직관적으로 보기위해 그래프를 만들려면?

1. 주어진 데이터로 행렬 생성

2. 생성한 행렬을 plot 명령어로 그림

 

 

1988 ~ 1994년 매출액 데이터로 그래프 그리기

 

clc;
clear all;

yr=[1988:1994];
sales=[8 12 20 22 18 24 27];
plot(yr,sales, '--r*','LineWidth',2, 'MarkerSize', 12);
grid on;

 

plot 명령어로 y=f(x) 그래프 그리기

1. 함수 정의역 x 벡터 생성

2. x로 f(x) 구하여 백터 y 생성

3. plot으로 작성

 

clc;
clear all;

x=[-2:0.3:4];
y=3.5.^(-0.5*x).*cos(6*x);
plot(x, y);
hold on;
x = [-2:0.01:4];
y=3.5.^(-0.5*x).*cos(6*x);
plot(x, y);
grid on;

 

 

fplot 명령어로 함수 그래프 그리기

fplot('function', limits, 'line specifiers')

- 'function ' : fplot 명령어 안에 문자열로 직접 입력 가능

clc;
clear all;


fplot('x^2+4*sin(2*x)-1',[-3, 3]);
grid on;

 

극좌표 그래프

- 평면상 한점의 위치를 각도 theta와 반경 r로 정의

polar(theta, radius, 'line specifiers');

clc;
clear all;

t = linspace(0, 2*pi, 200);
r = 3*cos(0.5*t).^2 + t
polar(t, r);

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

300x250
728x90

1차원 배열로 나타낼수 있는 것

- 어떤 수들의 집합

-> 연도별 인구 현황

 

 

 

배열이란?

- 매트랩이 데이터를 저장하고 다루기위한 기본 형태

- 행, 열로 정렬 된 수들의 나열

 

1차원 배열 예

- 3차원 공간의 한 점 : p(2,5,6)  -> [2 5 6] or [2, 5, 6]

 

배열 예시

- 어떤 수들의 집합도 배열로 표시 가능

year = [1984 1986 1988 1990 1992 1994 1996]

pop = [127 130 136 145 158 178 211];

-> 연도와 인구수를 벡터로 표시

 

 

 

1차원 배열 생성 방법

- 꺽은괄호 [] 안에 배열 원소 직접 입력

- 외부 데이터 파일로부터 행렬을 읽어드림

- 매트랩 명령이나 m파일로 행렬 생성

 

 

아는 수 집합을 행 벡터로 만들기

- 꺽은 괄호 [] 안에 원소들 기입. 원소와 원소는 공백이나 콤마로 구분

t = [5, 7, 2, 4, 10, 29];

 

 

열 백터 생성 방법

v = [3; 4; 5];

 

v = [3

4

5]

 

v = [3 4 5]'

 

 

 

일정 간격의 벡터 생성

변수명 = [m : q : n]

m : 첫번째 원소

q : 간격

n : 최대값

 

>> x =[1:2:8]

x = 1 3 5 7

 

>> x = 15:-3:8

x=15 12 9

 

 

 

 

2차원 배열 생성 방법

- 행렬이라 불림.

- 다수의 행과 열로 가짐

- 세미콜론이나 엔터로 새로운 행을 만듬

 

>> A = [2 4 10; 16; 3 7; 8 12 35]

A =

 2    4    10

 16  3    7

 8   12  35

 

 

다양한 배열 생성 방법

- 계산 가능한 수식이나, 변수도 가능

- linspace나 콜론으로도 가능

 

 

배열 명령어

- zeros(m, n) : m x n 크기의 0행렬

- ones(m,n) : m x n 크기의 1 행렬

- eye(n) : n 크기의 1 대각 행렬

 

 

전치 연산자

- 행벡터 -> 열백터

- 열백터 -> 행백터

- 행렬의 행과 열을 바꿈

 

 

 

배열 접근하기

- 행렬의 배열에서 하나나 여려 원소의 위치를 찾거나 접근 가능

 

>> v=[12 8 9 6 28]

>> v(1)

12

>> v(1)=30

30

 

 

300x250
728x90

수치해석 소개

- 공학 문제를 수식화하여 이에 대한 해를 수치적으로 구함

- 방정식, 행렬연산, 회귀분석, 미적분 등 수치적 알고리즘 이해

- MATLAB 활용 방법 학습

 

=> 수치해석 알고리즘 이해 및 응용

-> MATLAB 활용능력 향상

 

목적

- 공학 분야 연구, 개발에는 계산기를 이용하여 설계나 수치 시뮬레이션 작업이 많음.

- 수치해석의 영역은 폭이 넓고 동일한 문제에 대해서도 수많은 알고리즘이 있다.

- 기초적인 수치해석법 및 실제로 자주 이용되는 수치해석 알고리즘 학습

 

목표

- 공학문제 수식화하여 해를 수치적으로 구함

- 비선형 방정식, 행렬연산, 회귀분석, 미적분 수치알고리즘 이해

 

 

1. 수치 해석의 역사와 특징

2. 매트랩 개요

 

 

 

수치해석

- 해석학 문제에서 수치적인 근사값을 구하는 알고리즘 연구하는 학문

- 수학적 문제로 표현할수있는 문제들을 컴퓨터로 해결하는 수학 응용분야에 사용

 

 

수치해석

- 해석학 문제에서 수치적인 근사값을 구하는 알고리즘을 연구하는 학문

-> 연속 수학 문제를 해결하기 위한 알고리즘을 연구하는 학문

- 자연과학, 공학, 의학 등 문제들 중 수학적인 문제로 표현될수 있는 문제들을 컴퓨터로 해결하는 학문

 

 

공학적 문제의 접근 방법

1. 실험적 방법

- 실험이나 관찰을 통해 수집한 데이터를 분석하여 인과관계를 규명하는 방법

- 장점 : 신뢰성 높음

- 단점 : 실험 비용, 측정 오차 문제가 발생

 

2. 이론적 방법

- 문제에 대한 가설을 세우고 수학적 증면으로 인과관계를 규명하는 방법

- 장점 : 일반화된 정보를 제공

- 단점 : 보통의 경우 선형 문제에만 국한됨

 

3. 수치해석적 방법

- 주어진 공학적 문제에 해일것으로 추정되는 수치를 차례로 대입하여 가장 작은 오차를 가진 수치를 해라고 판단하는 방법

- 장점 : 복잡한 물리현상도 취급, 선형성과 무관, 실험적 방법보다 간단

- 단점 : 반복 계산의 부담이 존재함.

 

 

 

 

수치 해석의 시작

- 가장 오래된 수치해석은 바빌로니아 사람들이 점토판에 60진법으로 단위길이 사각형의 대각선 길이인 sqrt(2)의 수치적 근사값을 구해놓음

- sqrt(2)의 근사값이 60진법으로 소수점 이하 4자리 까지 계산되어있음

=> 현대의 수치해석도 정확한 해를 구하지 못함. 합리적 수준의 오차를 갖는 근사값을 구하는것이 중요해짐

 

 

 

 

수치해석

- 폰 노이만 이래 현대 컴퓨터의 태동과 발전의 직접적인 견인차 역활

-> 실생활, 국방, 자연현상 등 수치해석은 예측결과를 컴퓨터를 통해 미리알아볼수 있게 함.

 

 

현대 수치해석의 목표

- 현대의 수치해석 역시 정확한 해를 구하지 못하여 하지 않음

-> 합리적인 정도의 오차를 갖는 근사값을 구하는것에 집중함

 

 

 

수치 해석의 응용 분야

1. 공학과 물리학

2. 생명 공학, 예술 분야

-> 상미분 방정식 : 행성들의 움직임과 포트폴리오 관리의 최적화 등에 이용

-> 마르코브 연쇄 : 의약과 생명분야에서 살아있는 세포에 대한 시뮬레이션을 하기 위한 필수 항목으로 자리잡음

 

 

 

 

수치해석 문제 해결 방법

1. 수학적 모형화

 - 해결하고자 하는 문제를 역학, 생물학, 경제학 등 기본 가설이나 법칙들 사용

 - 상/편 미분방정식, 대수 방정식 등의 수학적인 문제로 변형하는 단계

2. 수학적 분석

 - 수학적 모형화 과정을 거쳐 생성된 수학적 문제를 미분방정식, 함수해석학, 기하학 및 대수학 등 가능한 수학 이론들 적용

 - 해의 유일성, 존재성 및 정칙성 등 분석하는 단계

3. 수치적 분석

 - 좁은 의미의 수치해석

 - 수학적 분석에서 다루어진 문제의 해가 존재하면, 이 해를 어떻게 컴퓨터로 구할것인가 수치적 알고리즘 개발

 - 이 알고리즘을 적용하여 이 알고리즘을 적용하여 구한 해의 수렴 성 판정 및 오차 분석 등 하는 단계

4. 수치 실험

 - 실제로 가장 효율적인 수치 알고리즘에 따라 프로그램을 작성하여 원래 문제를 해결하는 단계

 

 

 

 

매트랩 개요

 

매트랩이란?

- 수치해석 분야에 편리한 도구

- 수치해석, 행렬연산, 신호처리 및 간단한 그래픽 기능 통합

- 고성능 수치 계산 및 결과의 시각화 기능 제공

 

 

매트랩

- 수치해석에 편리한도구

- 문법이 간단 : 변수 데이터 타입 지정안해도됨

- 배열 사용이 간단 : 크기 지정안해도됨

- 행렬계산에서 병렬처리가능

- 계싼결과 즉시 확인 가능 : 그래프, 3차원 도형 등

- MATrix LABoratory

- 수치해석, 행렬 연산, 신호 처리 및 간단한 그래픽 기능등을 통합하여 고성능 수치계싼 및 결과의 시각화 기능 제공하는 프로그램

 

 

매트랩 특징

- 인터프리터 방식 언어

- 수학 계싼 및 가시화에 편리

- 선형대수, 데이터 분석, 신호처리, 수치적분 등 많은 과학 계산용 내장함수를 제공

- 사용자에 의한 함수 작성 편리

- 다양한 분야의 광범위한 툴방스 제공

 

 

문제

 

 

 

 

 

 

 

 

 

 

300x250
728x90

 

 

 

블로그에서 제어 공학 등 정리하다보니 수식을 써야 될때가 종종 있다.

 

찾아보니 latex을 쓰면 된다고 하내

 

블로그 글에 html 모드로 아래의 스크립트를 집어 넣고

 

 

<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    tex2jax: {
      inlineMath: [ ['$','$'], ["\\(","\\)"] ],
      processEscapes: true
    }
  });
</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js?config=TeX-MML-AM_CHTML"></script>

 

 

latex 문법에 따라 작성하면 수식으로 만들어 진다

$a_{1}$	아래첨자
$a^{2}$	위첨자
$\frac{10} {10^{3}}$  분수
$\bar{abc}$ 바
$\dot{def}$ 점
$\approx$ 유사


$\alpha$
$\beta$
$\gamma$
$\theta$

$\frac{\alpha_{min}^{2}} {\dot{\beta_{min}^{3}}}$

위는 작성 예시

아래는 실제 적용 결과

 

$a_{1}$ 
$a^{2}$ 
$\frac{10} {10^{3}}$  
$\bar{abc}$
$\dot{def}$
$\approx$


$\alpha$
$\beta$
$\gamma$
$\theta$

 

$\frac{\alpha_{min}^{2}} {\dot{\beta_{min}^{3}}}$

 

복잡한 문법은 다음 주소에서 참고해서 쓰자 빠잉

https://www.codecogs.com/latex/eqneditor.php

 

300x250
728x90

미분방정식 이용

- 현실 -> 수학적 모델 -> 해를 구함 -> 해석

ex) 비행 시뮬레이션, 일기예보 등

 

비행기 위치 예측

1. 비행기 운동 미방으로 수학적 모델링

2. 시간에 대한 위치 함수

3. 비행기의 이후 위치 추정

 

 

뉴턴의 운동 방정식

- m : 질량 kg, a : 가속도 m/s, F : 힘 kg m/s

가속도를 위치에 대한 미분으로 바꿔 미방 표현

- x : 변위

y=f(x) 

- f : 함수

- x : 독립 병수

- y : 종속 변수

 

 

e

- 네이피어의수

- e = 2.71828 ....

 

자연로그

- 밑이 e인 로그

- ln x

 

 

오일러 공식

 

오일러 식을 이용한 cos과 sin

 

미분 방정식 분류

- 선형 : 동차, 비동차

- 비선형 : 동차, 비동차

- 미방 계수 : 가장 큰 도함수의 계수

- 미방 차수 : 가장 큰  도함수의 차수

 

1계 1차 미분 방정식

- 차수가 1인 변수 x에 대한 1차 미분

 

2계 1차 미분 방정식

- 차수가 1인 종속 변수 x에 대한 2차 미분

선형 미분 방정식

- 종속변수의 차수가 1인 미분 방정식

 

 

동차 방정식

- 미분방정식의 우항이 0

 

비동차 방정식

- 미분장정식의 우항이 0이 아닌 미방

 

 

진동 운동

- F(t) : 외력

- f_e : 탄성력

- f_r : 저항력

- v : 속도

- x : 변위

저항력과 탄성력

- 저항 계수가 c, 탄성 계수가 k 일때

 

진동 운동의 운동 방정식

- 운동 방정식 = 외력 + 저항력 + 탄성력

저항이 없는 경우 운동방정식

- 저항 계수 c = 0 대입

300x250
728x90

지수 함수

- e: 자연로그의 밑. 2.7182.무리수

로그함수

- 지수함수의 역함수

 

회귀식

- 회귀 분석 -> 회귀식 y=ax+b를 구함

- y : 종속변수

- x: 독리변수

- a: 회귀계수

- b: 기여율 (바이어스)

 

회귀 분석의 예

1. 독립 변수와 종속변수의 점 그래프 그림

2. 회귀식 구함

3. 회귀식 정도 확인

3. 회귀 계수 검정

4. 모 회귀 Ax + B 추정

5. 예측

 

최소 제곱법 least square method

- 모델 파라미터를 구하는 대표적인 방법

- 잔차의 제곱 합이 최소가 되도록 하는 a, b를 구해야함

 

최소 제곱법 계산

1. S_xx (x 편차 제곱합), S_yy (y 편차 제곱합), S_xy(xy 편자 곱합) 구함

2. S_e (잔차 제곱합) 계산

3. S_e를 a와 b에 대해 편미분 후 0으로 놓음

4. 회귀식을 구함

최소 제곱법을 이용한 회귀식

중상관계수 multiple correlation coefficeint

- 점과 회귀식이 어느정도 가까이 있는지 나타냄

- 결정계수 = R^2 (범위는 0~1)

- 회귀식에 가까울수록 결정계수가 1에 가까워짐

중회귀분석 multiple regression analysis

- 독립변수가 2개 이상인 회귀분석

- 중회귀식 사용

 

로지스틱 회귀분석 logistic regression

- 회귀분석과 달리 확률을 예측하기 위한 모델

 

로지스틱 회귀식

 

로지스틱 회귀식의 그래프 표현

 

최대우도법

- maximum likelihood method

- 우도 함수나 로그 우도 함수가 최대가 되는 확률 p(최우 추정값) 계산

- 확률 p가 10번 중 7번 발생하는 경우 예시

최우 추정값 계산

1. 로그 우도 계산

2. 로그우도 함수를 구하고 정리

3. 로그 우도 함수 L을 p에 대해 미분하고, 0과 대응

4. 위 식을 정리하여 최대 우도 p를 계산 가능

 

로지스틱 회귀식 계산

1. 추정 값 계산

2. 우도 함수 계산

3. 로그 우도 함수 계산

4. 최우 추정값 계산 -> 회귀 계수 a와 편향 b 구함 

5. 회귀 식 정리

오즈 odds

- 사건 A가 (발생확률)/(발생하지 않을 확률) 비

- P(A)가 1에 가까울수록 오즈는 커짐

로짓 logit

- 오즈에 자연로그를 취한것

300x250
728x90

문제 1

문제 2

고유값과 고유벡터

- 고유 벡터 : 선형 변환시 방향이 바뀌지 않고 크기만 변하는 벡터

- 고유 값 : 고유 벡터가 변하는 크기

- 고유 값과 고유 벡터는 n차 정방행렬에 n개가 나옴

 

위 문제의 고유값과 고유벡터

 

고유값과 특성 방정식

- 특성방정식을 풀면 고유값을 구할 수 있다.

 

특성 방정식으로 선형 사상의 고유값 구하기

고유값으로 고유벡터 구하기

- 선형 사상을 적용 한 식에 고유 벡터를 대입

 

n차 정방행렬의 p 제곱 구하기

n차 정방행렬의 대각화

- p=1인 경우 고유값으로 이루어진 대각행렬

노름(Norm)

- 벡터의 크기/길이

내적 inner produdct

- 내적 = 스칼라곱 = 도트곱

 

정규 직교 기저

- orthonormal basis

- 각 벡터의 길이가 1이며두 벡터의 내적이 0인 경우

외적 outer product

- 벡터 곱, 크로스곱

300x250

+ Recent posts