P1
복습
-
오차의 정의
$x$: 정답 / $x^\ast$ 컴 계산결과 라고 할때
절대오차 = $|x-x^\ast|$
상대오차 = $|\frac{x-x^\ast}{x}|$
가 오차의 정의가 되겠다.
-
컴의 한계
0.1같은 10진수 컴 저장 불가. 부동소수점 오류
-
c코드
클래스룸 강의록 6 -> 시험에 연관
- 테일러 급수 변형유도
- 시험칠때 가장 먼저 적어야되는 식
$$★ f(x+h)=f(x)+f'(x)h+\frac{f''(x)}{2!}h^2+\frac{f'''(x)}{3!}h^3+...$$
여기서 $f(x)$ 의 $x$ 는 센터 개념. 원본 $f(x)$ 의 경우엔 진짜 $x$.
센터 개념의 $x$는 $-h<x<h$ 가 될 수 있다.
-
$h$ 의 예
대충 이렇게 잡는게 무난하더라 $h=|x|*10^{-3}$
$x=0$ 일때 귀찮으니까 대충 $h=10^{-3}$으로 잡아라.
시험에 이래야 되는 때가 있다.
-
테일러 정리(Taylor theorem)
자를때 발생하는 오차는 잘려나가는 첫째 항에 좌우된다.
-
미분 1빠따 식
- 위의 테일러 급수 변형유도 항목에서 본 식을 더 변형하면 아래 식이 됨. $$★ f'(x)=\frac{1}{h}[f(x+h)-f(x)]+\frac{1}{h}(-\frac{f''(x)}{2}h^2+...)$$
오차의 크기는 h에 비례. 뒷 나머지 $\frac{1}{h}(-\frac{f''(x)}{2}h^2+...)$ 빅 오라고 부름. $O(h)$ 로 써놓으면 된다. 자연히 오차의 크기는 $h$에 비례한다. 이것이 오차가 $h$ 냐 라는건 아니다.
만약 자세한 오차를 구하라 하면 $O(h)$ 대신 해당 나머지 식을 그대로 써주면 된다.
P2
symbolic computation
-
코드 올려둔 것 기준으로 설명
입력 $f(x)=x^2$ → 출력 $f'(x)=2x$ 이 나오는 것은 symbolic computation 이라고 함. 옛날 AI 로 계산 가능.
이런 심볼릭 계산은 수치해석이 아님. 숫자가 막 들어가 계산이 되는것이 수치해석.
-
$f(x)=x^2$ 을 $x=1$ 에서 $h=10^{-3}$ 으로 미분할 때 (이건 수치해석)
- 위의 미분 1빠따 식을 갖다 씀
$$f'(x)=\frac{1}{h}[f(x+h)-f(x)]+O(h)$$
여기서 $O(h)$ 는 무시하고 계산을 하면
$$f'(1)=\frac{1}{10^{-3}}[(1+10^{-3})^2-1^2]=$$
$$=2+10^{-3}$$실제 답 $f'(1)=2$ 인걸 고려하면 오차가 $10^{-3}$ 이 된다. 이것이 $O(h)$ 가 됨.
컴 제약
$$1 + 10^{-1000} = 1$$ 컴은 이렇게 계산함. 32비트가 할당된 부동소수점 자료형으로 계산 못함. 수가 작으면 따라서 더해도 티가 안남.
P3
$$f(x)=x^2, x=1, h=10^{-1000}$$
O(h) 오차크기는 h크기에 비례. 오차가 작을수록 좋음.
아까 쓴 미분 1빠따 식 $f'(x)=\frac{1}{h}[f(x+h)-f(x)]+O(h)$ 으로 계산해보면
$$=\frac{(1+10^{-1000})^2 - 1^2}{h}=\frac{1^2-1^2}{h}=0$$
실제 계산은 답이 2임. 컴 미분결과는 반면 0.
32bit 컴에서 $1+2^{-23} \neq 1$ 이지만 $1+2^{-24}=1$ 가 된다.
$h$ 는 자기 문제에 따라 알아서 잘 잡아야 함. 그냥 아까 쓴대로 $h=|x|*10^{-3}$ 으로 생각하면 편하다. 바로 위 예제같은 경우엔 숫자가 너무 작아서 $h=|x|*10^{-3}$ 를 못쓰는 케이스.
P4
미분 2빠따 식 유도
아까 변형식
- $f(x+h) = f(x) + f'(x)h + \frac{f''(x)}{2!}h^2 + \frac{f'''(x)}{3!}h^3+..$
x는 -h와 h사이 센터로 생각하면
- $f(x-h) = f(x) - f'(x)h + \frac{f''(x)}{2!}h^2 + \frac{f'''(x)}{3!}(-h)^3+..$
2항부터 잘라냄.
$$f(x+h) - f(x-h) = 2f'(x)h + \frac{2f'''(x)}{3!}h^3+...$$
-
미분 2빠따 식 $$★ f'(x) = \frac{1}{2h}[f(x+h)-f(x-h)] + ( )h^2+...$$
이경우 $O(h^2)$ 발생오차 크기는 $h^2$ 에 비례. 빅 오로 나타내라면 $O(h)$로 하면 됨.
1에 2를 더하면 반대로 짝수 프라임 항만 나옴.
위 식이 얼마나 좋은지 시연
- 문제: $f(x)=x^2$, $x=1$, $h=10^{-3}$
$$f'(x) = \frac{1}{2*10^{-3}}[(1+10^{-3})^2-(1-10^{-3})^2] + O(h)+...$$
$$=2 + 0$$
이렇게 오차가 0으로 나오면 재수가 좋은것. 사족으로 $O(h^2)$ 이 $O(h)$ 보다 오차가 작음.
아까 미분식1로 계산한 것에선 오차가 $10^{-3}$이 났는데 2식으론 오차가 0이 나옴.
이 2빠따 식이 centered solbel 식이라고 이미지 처리하는데 실제 쓰이는 식임.
P5
다른반 질문내용 - f''(x) 계산식 유도
아까 언급한 1 2 번 식을 더하면 생기는 식이다. 다시 식을 갖고오면
-
$f(x+h) = f(x) + f'(x)h + \frac{f''(x)}{2!}h^2 + \frac{f'''(x)}{3!}h^3+..$
-
$f(x-h) = f(x) - f'(x)h + \frac{f''(x)}{2!}h^2 + \frac{f'''(x)}{3!}(-h)^3+..$
더하면
$$f(x+h) + f(x-h) = 2f(x) + f''(x)h^2 + ( )h^4 + ...$$
$h^4$에서 자른다고 생각하면
- 또다른 2빠따 미분식
$$★ f''(x)=\frac{1}{h^2}[f(x+h)-2f(x)+f(x-h)] + O(h^2)$$
자동차 번호판 인식할 때 쓴다고 칸다.
질문이 없으니 기출 문제풀이
- $f'(x) \approx \frac{1}{4h}[f(x+3h) - f(x-h)]$ 의 에러 항을 자세히 쓰고 빅오로 나타내라.
테일러 변형식 다시 갖고오면
$$f(x+h)=f(x)+f'(x)h+\frac{f''(x)}{2!}h^2+\frac{f'''(x)}{3!}h^3+...$$
-
$f(x+3h)=f(x)+3f'(x)h+...$
-
$f(x-h)=f(x)-f'(x)h+...$
빼면
$$f(x+3h)-f(x-h)=4f'(x)h+\frac{f''(x)}{2!}8h^2+....$$
$$f'(x)=\frac{1}{4h}[f(x+3h) - f(x-h)] + ()h + ()h^2+...$$
따라서 오차는 가장 큰 2번항을 따라 $O(h)$ 가 된다.
P6
기출 풀이 2
- $f'(x) \cong \frac{1}{2h}[4f(x+h)-3f(x)-f(x+2h)]$ 를 테일러 급수식을 이용해 유도하라. 이후 에러를 빅오로 나타내라.
테일러 변형식 또 다시 갖고오면
$$f(x+h)=f(x)+f'(x)h+\frac{f''(x)}{2!}h^2+\frac{f'''(x)}{3!}h^3+...$$
푸는법 여러개. 이중 하나는 이것.
-
$4f(x+h)$ 를 구함.
$$4f(x+h) = 4f(x)+4f'(x)h+\frac{4}{2!}f''(x)h^2+\frac{4f'''(x)}{3!}h^3+...$$
-
$f(x+2h)$ 를 구함. $$f(x+2h)=f(x)+2f'(x)h+\frac{f''(x)}{2!}(2h)^2+\frac{f'''(x)}{3!}(2h)^3...$$
-
뺌. $$4f(x+h)-f(x+2h)=3f(x)+2f'(x)h-\frac{4f'''(x)}{3!}h^3+...$$ $$4f(x+h)-3f(x)-f(x+2h)=2f'(x)h-\frac{4f'''(x)}{3!}h^3+...$$ $$\frac{1}{2h}[4f(x+h)-3f(x)-f(x+2h)]=f'(x) - \frac{2f'''(x)}{3!}h^2+...$$
구하는것이 $f'(x)$ 이므로 나머지 첫항은 $-\frac{2f'''(x)}{3!}h^2$.
따라서 답은 $O(h^2)$