728x90

2020/10 12

적분으로 물체의 포물선 운동 묘사(C++)

0) 포물선 운동 포물선 운동은 x 방향으로 물체가 등속도 운동을 하는 상황에서 중령에 의해 y 방향으로 등가속도 운동을 하는 물체의 운동을 말합니다. 즉 Vx(x축으로의 속도) = v0(초기속도) * t로 표현할 수 있고, Vy(y축으로의 속도) = v0(초기속도) * t + a(가속도) * t 로 x 축과 y축의 속도를 시간에 대해서 나타낼 수 있습니다. 이 때 이 속도를 시간 구간에서 적분을 해주면 이동한 거리를 알 수있습니다. 만약 초기 위치만 주어진다면, 결론적으로 물체의 움직임을 시간마다 알아낼 수 있습니다. 1) 구현 코드 함수가 여러개 있습니다. 처음부터 설명을 하겠습니다. 1. vxt(t, vx0, ax) 시간과 초기 속도 가속도를 받아 t에서의 x축으로의 속도를 계산해주는 함수입니다. ..

C && C++ 2020.10.17

다항회귀 예제(C++ with eigen library)

이번 포스팅에서는 C++로 다항회귀를 하는 것을 보여드리겠습니다. 이 예제를 차근차근 따라하시면 C++로 다항회귀를 해보실 수 있습니다. 0) 데이터 세트 만들기 C++에서 회귀에 사용할 노이즈를 포함한 데이터 세트를 python코드를 통해서 만들었습니다. 아래에 코드를 첨부하겠습니다. import numpy as np import matplotlib.pyplot as plt x = 5 * np.random.rand(1,150) y = -2 * pow(x,3) + 9 *pow(x,2) + -3 * x + 7 + 4 * np.random.rand(1,150) 위의 타겟함수에 대해서 데이터가 생성되었고, 이를 시각화 하니아래의 그림과 같은 도표를 얻었습니다. 이제 이를 C++에서 사용한 txt 파일로 만드는..

릿지 회귀 예제(파이썬/python)

지난 포스팅에서 정규방정식을 이용해 일반화 모델을 만들었습니다. 못보신 분들을 위해 아래에 링크를 걸어두도록 하겠습니다. himbopsa.tistory.com/11?category=891086 1차 선형회귀 예제(파이썬 정규 방정식) 이번 포스팅은 1차선형휘귀를 정규 방정식으로 하는 것을 보여드리겠습니다. 다른 방법을 보고 싶으신분은 다음 링크를 타고 가셔서 보시면 됩니다. himbopsa.tistory.com/6 1차 선형 회귀 예제 경사하 himbopsa.tistory.com 이 때 저희 가 얻은 theta 값은 [[1.53371047] [1.98419393]] 으로 실제 데이터 [[1],[2]]와 근사하지만, theta_0 의 결과가 조금 실망스러웠습니다. 그 때 포스팅에서 규제를 추가하면 개선될 ..

1차 선형회귀 예제(파이썬 정규 방정식)

이번 포스팅은 1차선형휘귀를 정규 방정식으로 하는 것을 보여드리겠습니다. 다른 방법을 보고 싶으신분은 다음 링크를 타고 가셔서 보시면 됩니다. himbopsa.tistory.com/6 1차 선형 회귀 예제 경사하강법 사용(C++) 1. 1차 선형 회귀란? 1차 선형 회귀는 데이터에 대해 최대한 일치하는 y = ax + b를 찾는 것 입니다. 이번 포스팅에서는 C++에서 데이터를 이용해 a와 b 값을 찾아 데이터에 fitting 하는 것을 예시를 �� himbopsa.tistory.com 먼저 정규방정식에 대해서 설명을 드리겠습니다. 0) 정규방정식 정규방정식은 analytical 방법입니다. 즉 수학적인 해석을 통해서 최적의 모델을 찾는 방법으로 정리할 수 있습니다. 정규방정식이 이 도구로서 정규방정식을..

다항 회귀(python with sklearn)

이 포스팅에서는 핸즈온 머신러닝 교재에 나오는 다항회귀에 대해서 논하겠습니다. C++로 회귀하는 작업을 보고싶은신 분은 아래 게시물을 참고해 주세요.( C++에서 회귀 코드를 보시면 정확하게 회귀가 어떤 원리로 일어나는지 확인하실 수 있습니다.) himbopsa.tistory.com/6 1차 선형 회귀 예제 경사하강법 사용(C++) 1. 1차 선형 회귀란? 1차 선형 회귀는 데이터에 대해 최대한 일치하는 y = ax + b를 찾는 것 입니다. 이번 포스팅에서는 C++에서 데이터를 이용해 a와 b 값을 찾아 데이터에 fitting 하는 것을 예시를 �� himbopsa.tistory.com 0) 사용한 라이브러리 import numpy as np import numpy.random as rnd from s..

Eigen library 설치하기(C++)

1. Eigen library 다운하기 i) 다음 사이트에 접속합니다. eigen.tuxfamily.org/index.php?title=Main_Page Eigen Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms. Eigen is now on GitLab.com (30.07.2020) Since the end of 2019, Eigen's repository and bugtracker are now both hosted on GitLab.com, meaning th eigen.tuxfamily.org ii) 아래 그림의 빨간색으로 표시된 "zip"을 클..

C && C++ 2020.10.14

Matlab 튜토리얼(Matlab)

매트랩을 저도 이번에 처음 접하게 되서 공부를 했습니다. 매트랩을 어디서 부터 공부하면 좋을지 고민되는 분들은 보시면 좋을 것 같습니다. 저는 아래 사이트에서 MATLAB Onramp을 통해 학습을 했습니다. 시간은 두시간 정도 걸렸네요 matlabacademy.mathworks.com/kr MATLAB 및 Simulink 교육 MATLAB Fundamentals (English) 데이터 분석, 모델링 및 프로그래밍을 위한 MATLAB의 핵심기능을 배워보세요. matlabacademy.mathworks.com 저는 기초적인 m atlab 문법을 실습을 통해서 빨리 익힐 수 있는 점이 가장 좋았습니다. 그리고 단계를 따라가면 누구나 완성할 수 있는 소형 프로젝트들이 존재해 matlab으로 어떤 일을 할 수..

Matlab 2020.10.14

1차 선형 회귀 예제 경사하강법 사용(C++)

1. 1차 선형 회귀란? 1차 선형 회귀는 데이터에 대해 최대한 일치하는 y = ax + b를 찾는 것 입니다. 이번 포스팅에서는 C++에서 데이터를 이용해 a와 b 값을 찾아 데이터에 fitting 하는 것을 예시를 통해 직접 보이도록 하겠습니다. 사용되는 알고리즘은 앞서 포스팅된 경사하강법을 이용할 것이기에, 참고하시면 도움이 되실겁니다. https://himbopsa.tistory.com/5?category=891084 경사하강법 예제(C++) 앞선 포스팅에서 함수를 시각화하는 것을 했다. 동일한 함수를 사용할 예정이고, 데이터 시각화하는 과정을 보고싶다면 참고 바란다. himbopsa.tistory.com/4 임의의 함수 시각화 하기 예제(C++) 어떤 himbopsa.tistory.com 먼저 ..

경사하강법 예제(C++)

앞선 포스팅에서 함수를 시각화하는 것을 했습니다. 이와 동일한 함수를 사용할 예정이고, 데이터 시각화하는 과정을 보고싶다면 아래 링크에서 참고하실 수 있습니다. himbopsa.tistory.com/4 임의의 함수 시각화 하기 예제(C++) 어떤 함수가 임의의 구간에서 어떻게 그려지는지 종종, 리포트를 제출할 때 우리는 시각화 하여 보여야할 때가 있다. C++과 Excel을 활용해 임의의 함수에 대해서 시각화를 하는 법에 대해 포스�� himbopsa.tistory.com 목표는 다음 그림1의 함수를 경사하강법을 사용하여 수학적인 계산 없이 최소값을 찾는 것입니다. 경사 하강법이란, 간단하게 설명드리면 그림2와 같은 함수가 있을 때 먄약 극대점이 아니라면, x, y 값을 더 값이 낮은 곳으로 이동시켜 최..

임의의 함수 시각화 하기 예제(C++)

어떤 함수가 임의의 구간에서 어떻게 그려지는지 종종, 리포트를 제출할 때 우리는 시각화 하여 보여야할 때가 있습니다. 이럴 때 쓸 수 있는 C++과 Excel을 활용해 임의의 함수에 대해서 시각화를 하는 법에 대해 포스팅 하는 시간을 가지겠습니다. 함수는 그림1에 나타난 함수로 설정했습니다. 이 녀석을 그리는 것이 이번 포스팅의 목표입니다. 먼저 우리가 프로그래밍 전에 예상할 수 있는 결과는 (x, y) = (3, 4)에서 최솟값 0을 가진다는 것입니다. 이는 수학적으로 계산될 수 있습니다. float fxy(float x, float y) { return (x - 3) * (x - 3) + (y - 4) * (y - 4); } 이렇게 그림1의 함수를 return 하는 C++ 코드를 완성했습니. 이 함수..

728x90