Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Cartoon Rendering
- ColorGradingLutPass
- 3d
- 프로그래밍 기초
- C언어
- 가상 바이트
- Cell Look
- Windows Build
- Three(Two) Tone Shading
- Specular
- 게임 수학
- Rim Light
- VR
- Virtual Byte
- ASW(Application SpaceWarp)
- URP로 변경
- Cell Shader
- 작업 집합
- Private Bytes
- OculusMotionVectorPass
- AppSW
- 개인 바이트
- 메모리 누수
- working set
- 벡터
- URP
- Toon Shader
Archives
- Today
- Total
WinCNT
수열(Sequence)과 급수(Series) 본문
수열(Sequence)
수열이란 말 그대로 수의 나열이다
하지만 보통 규칙성이 있는 수의 나열을 의미한다
대표적인 수열로는 등차 수열과 등비 수열이 있다
등차 수열
등비 수열
시그마(Sigma)
수열의 합을 나타내는 기호이다
시그마 기본 공식
급수(Series)
급수란 수열의 각 항을 더한 것을 의미한다
등차급수 - 등차수열로 이루어진 급수
등비급수 - 등비수열로 이루어지는 급수
멱급수 - 앞의 항은 등차수열, 뒤의 항은 등비수열로 이루어진 급수
테일러 급수
테일러 급수 : 어떤 한 점의 함수 값은, 중심점 a에서의 함수값과 그 미분 값들로 표현할 수 있다
따라서, 함수의 특정 매개 변수에 대한 값은 전부 무한 급수로 바꿀 수 있다.
즉, 어떤 함수든 고쳐서 컴퓨터에게 계산을 시키면 근사 값을 쉽게 구할 수 있다!!!!
테일러 급수(맥클로린 급수) 전개 예시
프로그래밍에서 삼각함수의 값도 테일러 급수를 이용해서 근사값을 구한다
(주로 15번째 항이면 충분한 근사 값을 얻는다)
테일러 급수 실제 적용
테일러 급수를 이용해 제곱근을 구하는 프로그램
// 테일러 급수를 이용해 제곱근을 구하는 프로그램
#include <stdio.h>
double Tsqrt(double num);
main()
{
double num;
printf("input number => ");
scanf("%lf", &num);
printf("SQRT of %g is %g\n", num, Tsqrt(num));
}
double Tsqrt(double num)
{
double sum=0, coef=1, power=1, fact=1, term=1;
int i;
for (i=0; sum != sum+term; i++) {
sum += term;
coef *= (0.5-i);
power *= (num-1);
fact *= (i+1);
term = coef*power/fact;
}
return sum;
}
테일러 급수를 이용해 sin()을 구하는 프로그램
// 테일러 급수를 이용해 sin()을 구하는 프로그램
#include <iostream>
#define _USE_MATH_DEFINES
#include <math.h>
unsigned int SIN_LOOP = 15;
unsigned int COS_LOOP = 15;
#define DEG2RAD(x) ((x)*(M_PI)/(180.0f))
#define RAD2DEG(x) ((x)*(180.0f)/(M_PI))
// sin(x) = x - x^3/3! + x^5/5! - x^7/7! + ...
template <class T>
T MySin(T x)
{
T Sum = 0;
T Power = x;
T Sign = 1;
const T x2 = x * x;
T Fact = 1.0;
for (unsigned int i = 1; i < SIN_LOOP; i += 2)
{
Sum += Sign * Power / Fact;
Power *= x2;
Fact *= (i + 1) * (i + 2);
Sign *= -1.0;
}
return Sum;
}
int main()
{
float deg = 45.0f;
std::cout << "MySin(" << deg << ") = " << MySin( DEG2RAD(deg) ) << std::endl;
}
SSS
'게임 프로그래밍(학습 내용 정리) > 게임 수학' 카테고리의 다른 글
변환 파이프라인 (0) | 2022.01.04 |
---|---|
좌표계 (0) | 2021.12.28 |
행렬 (0) | 2021.12.21 |
삼각비와 삼각 함수 (0) | 2021.11.09 |
게임 수학 - 벡터 (0) | 2021.10.12 |