본문 바로가기

수치해석

(5)
[Python|Numpy|Matplotlib] 푸리에 시리즈 사각파 10년전 포스팅에 C로 사각파 푸리에 시리즈를 구현한 것이 있었다. 이걸 파이썬, numpy, matplotlib 를 이용해 다시 구현해 본다. import numpy as np import matplotlib.pyplot as plt def F(n, X): """ 1 F (t) = ------- sin ( (2n+1) t ) n 2n + 1 """ return np.sin((2*n+1)*X)/(2*n+1) def RectWave(n, X): """ n Sigma F (t) k=1 """ y = np.zeros(X.shape) for k in range(n+1): y = F(k, X) + y return y X = np.linspace(-5, 5, 1000) for i in (1, 5, 50, 100):..
[Py|수치해석] 무식하게 DFT DFT (discrete fourier transformation), FFT가 이것보다 효율적인 거란 말이지. 알았어 다음 포스팅은 그거다. DFT의 정의는 http://en.wikipedia.org/wiki/Fast_Fourier_transform 에서. #!/usr/bin/env python ### DFT Bruteforce ### didn't check if this coding gives the right answer. I just followed the ### definition. ### by DwYoon N_DATA = 1024 #N_DATA = 16 import cmath import random # populate raw data using random generator # you can ..
[FORTRAN77|초급] exp 함수 테일러급수 exp(x) 의 테일러 급수를 이용하여, exp(5)의 값을 구하는 기초기초적인 프로그래밍. 포트란 77로 짠 소스이고, 문제에서는 20번째 항까지 계산하라고 한다. 포트란에서 인자 받고 하는 걸 몰라서 소스에 박혀있다.간단한 거지만 살짝 설명하면, TERM이 더할 각 항이고, 각 항과 다음 항 하고의 관계가 아주 예뻐서 프로그래밍 숙제로 나오기 아주 좋다. PROGRAM Exp SUM = 0 X = 5 TERM = 1 SUM = SUM + TERM DO 1, I = 1, 20 TERM = TERM * X / I SUM = SUM + TERM 1 CONTINUE PRINT *, SUM STOP END 빨간 색으로 된 부분은 스페이스가 아니라 탭으로 들여쓰기 한 걸 구분해 주기 위해 빔에서 표시된 것. D..
[C|MFC|수치해석] 라그랑지 다항식 라그랑지 다항식. 주어진 n 개의 점들을 지나는 n-1차 다항식을 구하는 것. 공식은 위키백과 영문판을 참고했다. #include #include typedef struct _data { double x; double y; } DATA; double l(DATA *dataList, int nData, int j, double x) { double prod = 1; for(int i=0; i
[C|MFC] 푸리에 시리즈 사각파 사각파 푸리에 시리즈 python 버전은 : https://daewonyoon.tistory.com/258 조금 지져분한 콘솔버전 /* By 숙제도둑 */ #include #define PI 3.1415927 /* * 1 * F (t) = ------- sin ( (2n+1) t ) * n 2n + 1 * */ double f(int n, double t) { return sin((2*n+1)*t)/(2*n+1); } /* * * k * X (t) = Sigma F (t) * k n = 1 n * */ double X(int k, double t) { int n; double sum = 0.0; for(n=0; n