|
6 | 6 |
|
7 | 7 | [](https://youtu.be/_GN74MRLYcI) |
8 | 8 |
|
9 | | -이 소프트웨어는 다양한 수치 해법을 [`Python`](https://ko.wikipedia.org/wiki/%ED%8C%8C%EC%9D%B4%EC%8D%AC) 언어와 그 확장 기능인 `SciPy` 를 이용하여 설명하고자 함.<br> |
10 | | -This software aims to describe various numerical methods in [`Python`](https://en.wikipedia.org/wiki/Python_%28programming_language%29) programming language and its extesion `SciPy`. |
11 | | - |
12 | | -## How to Open in [Google Colab](https://colab.research.google.com)<br>[구글 코랩](https://colab.research.google.com)에서 읽는 법 |
13 | | - |
14 | | -1. Open an `ipynb` file of [this repository](https://github.com/kangwonlee/nmisp)<br>이 [저장소](https://github.com/kangwonlee/nmisp)의 `ipynb` 파일을 엶 |
15 | | -1. Click on <br> 클릭 |
16 | | -1. Try `Run all` of `Runtime`<br>`런타임` 아래 `모두 실행` 시도 |
17 | | - |
18 | | -## How to commit changes on [Google Colab](https://colab.research.google.com) to Github<br>[구글 코랩](https://colab.research.google.com)의 변경 사항을 Github 에 반영하는 법 |
19 | | - |
20 | | -1. [Fork](https://github.com/kangwonlee/nmisp/fork) the repository<br>저장소의 [분기](https://github.com/kangwonlee/nmisp/fork) 사본을 만듦 |
21 | | -1. Open the ipynb file from the forked repository<br>분기된 저장소에서 ipynb 파일을 엶 |
22 | | -1. Click on <br> 클릭 |
23 | | -1. Make changes<br>파일을 수정 |
24 | | -1. Choose `Save a copy in GitHub` under `File` menu<br>`파일` 메뉴 아래 `Github 에 사본 저장` |
25 | | -1. Adjust permissions and/or retry if necessary<br>필요시 권한 조정 후 재시도 |
26 | | - |
27 | | -## 설치 항목<br>Software to install |
| 9 | +이 저장소는 다양한 수치 해법을 [`Python`](https://ko.wikipedia.org/wiki/%ED%8C%8C%EC%9D%B4%EC%8D%AC) 언어와 그 확장 기능인 `SciPy` 를 이용하여 설명하고자 함.<br> |
| 10 | +This repository aims to describe various numerical methods in [`Python`](https://en.wikipedia.org/wiki/Python_%28programming_language%29) programming language and its extension `SciPy`. |
| 11 | + |
| 12 | +## 과정 구성<br>Course Structure |
| 13 | + |
| 14 | +```mermaid |
| 15 | +flowchart TD |
| 16 | + A["00 Introduction<br>소개"] |
| 17 | + B["10 Root Finding<br>방정식의 근"] |
| 18 | + C["15 Optimization<br>최적화"] |
| 19 | + D["20 Probability & Statistics<br>확률과 통계"] |
| 20 | + E["28 Interpolation<br>보간법"] |
| 21 | + F["30 Numerical Integration<br>수치 적분"] |
| 22 | + G["35 SymPy<br>기호 연산"] |
| 23 | + H["40 Linear Algebra 1<br>선형대수 1"] |
| 24 | + I["50 ODE<br>상미분방정식"] |
| 25 | + J["60 Linear Algebra 2<br>선형대수 2"] |
| 26 | +
|
| 27 | + A --> B |
| 28 | + A --> D |
| 29 | + A --> H |
| 30 | + B --> C |
| 31 | + B --> E |
| 32 | + E --> F |
| 33 | + F --> G |
| 34 | + F --> I |
| 35 | + H --> J |
| 36 | + H --> I |
| 37 | +``` |
28 | 38 |
|
29 | | -### 깃 버전 관리 소프트웨어 : 명령행 실행 환경<br>Git Version Control Software : Commadline interface |
| 39 | +| 폴더<br>Folder | 주제<br>Topic | 주요 내용<br>Key Contents | |
| 40 | +|:---:|:---:|:---| |
| 41 | +| `00_introduction` | 소개<br>Introduction | 부동소수점, 파이썬 복습<br>Floating point, Python review | |
| 42 | +| `10_root_finding` | 방정식의 근<br>Root Finding | 순차, 이분법, 뉴턴-랩슨<br>Sequential, Bisection, Newton-Raphson | |
| 43 | +| `15_optimization` | 최적화<br>Optimization | 커브피팅, 분류, 선형계획<br>Curve fitting, Classification, LP | |
| 44 | +| `20_probability` | 확률 통계<br>Probability | 확률변수, 회귀, 판다스<br>Random variables, Regression, Pandas | |
| 45 | +| `28_interpolation` | 보간법<br>Interpolation | 보간법<br>Interpolation | |
| 46 | +| `30_num_int` | 수치 적분<br>Numerical Integration | 직사각형, 사다리꼴, 심프슨, 수렴 차수<br>Rectangle, Trapezoid, Simpson, Convergence order | |
| 47 | +| `35_sympy` | 기호 연산<br>SymPy | 기호 연산, 보 반력<br>Symbolic math, Beam reaction | |
| 48 | +| `40_linear_algebra_1` | 선형대수 1<br>Linear Algebra 1 | 벡터, 내적, 외적, 행렬<br>Vectors, Dot/Cross product, Matrix | |
| 49 | +| `50_ode` | 상미분방정식<br>ODE | 오일러, 훈, 룽게-쿠타<br>Euler, Heun, Runge-Kutta | |
| 50 | +| `60_linear_algebra_2` | 선형대수 2<br>Linear Algebra 2 | 연립방정식, 고유값, 가우스 소거<br>Systems of equations, Eigenvalues, Gauss elimination | |
30 | 51 |
|
31 | | -* 우분투 리눅스의 경우 다음과 같이 설치<br>For Ubuntu Linux, install as follows |
| 52 | +## [Google Colab](https://colab.research.google.com) 에서 실행하기<br>Running on [Google Colab](https://colab.research.google.com) |
32 | 53 |
|
33 | | -``` sh |
34 | | -apt-get install git |
35 | | -``` |
| 54 | +### 노트북 열기<br>Opening a notebook |
36 | 55 |
|
37 | | -* Windows 의 경우 아래 링크에서 다운로드 가능<br>Download for Windows available at the following link : [Git for Windows](https://git-scm.com/download/win) |
| 56 | +1. 이 [저장소](https://github.com/kangwonlee/nmisp)의 `ipynb` 파일을 엶<br>Open an `ipynb` file of [this repository](https://github.com/kangwonlee/nmisp) |
| 57 | +1.  클릭<br>Click on  |
| 58 | +1. `런타임` 아래 `모두 실행` 시도<br>Try `Run all` under `Runtime` |
38 | 59 |
|
39 | | -##### 간단한 추천 사항<br>A few simple recommendations |
| 60 | +### 변경 사항 저장하기<br>Saving changes to GitHub |
40 | 61 |
|
41 | | -* 명령행에서 사용 Command line interface<br> |
42 | | -* 실습실 환경에서는 credential manager 설치 삼가<br>Credential manager may not be a best choice for a computer lab |
43 | | -* 아래 IDE 가운데 Microsoft Visual Studio Code 선택시 다음과 같이 생각해 볼 수 있음<br> |
44 | | -To use Microsoft Visual Studio Code among IDEs below, an administrator may consider followings<br> |
| 62 | +1. 저장소의 [분기](https://github.com/kangwonlee/nmisp/fork) 사본을 만듦<br>[Fork](https://github.com/kangwonlee/nmisp/fork) the repository |
| 63 | +1. 분기된 저장소에서 `ipynb` 파일을 엶<br>Open the `ipynb` file from the forked repository |
| 64 | +1.  클릭<br>Click on  |
| 65 | +1. 파일을 수정<br>Make changes |
| 66 | +1. `파일` 메뉴 아래 `Github 에 사본 저장`<br>Choose `Save a copy in GitHub` under `File` menu |
45 | 67 |
|
46 | | -| 항목<br>Key | 값<br>Value | |
47 | | -|:-------:|:-------:| |
48 | | -| git 기본 편집기 <br> Default editor for Git | MS VS Code | |
49 | | -| 경로 환경 조정 <br> Adjusting Path environment | Use Git from the Windows Command Prompt | |
50 | | -| 터미널 에뮬레이터 <br>Terminal emulator | Use Windows' default console window | |
51 | | -| 자격 인증 관리자 활성화 <br> Enable Git Credential Manager | 전산 실습 환경의 경우, 선택 해제<br>If computer lab, unselect | |
| 68 | +## 로컬 설치<br>Local Installation |
52 | 69 |
|
53 | | -이후 MS vscode 에서도 한두가지 추가 설정을 실시하면 내장 터미널로 `git-bash` 를 사용할 수 있음<br> |
54 | | -With a few additional configurations in MS vscode, one could use `git-bash` as the integrated terminal. |
| 70 | +### 요구 사항<br>Requirements |
55 | 71 |
|
56 | | -### 파이썬 프로그래밍 언어<br>Python Programming Language |
| 72 | +* [Git](https://git-scm.com/downloads) |
| 73 | +* [Miniconda](https://docs.conda.io/en/latest/miniconda.html) 또는<br>or [Anaconda](https://www.anaconda.com/download) |
57 | 74 |
|
58 | | -#### [Miniconda](https://docs.conda.io/en/latest/miniconda.html) <br> |
59 | | - |
60 | | -* Python 3.7 이후<br>Python 3.7 or latter |
61 | | -* 64bit 판 추천<br>Recommend 64 bit versions |
62 | | -* 리눅스 명령어 환경에서 다음 실행<br>Run following commands in a Linux shell |
| 75 | +### 설치 및 실행<br>Setup and Run |
63 | 76 |
|
64 | 77 | ``` sh |
65 | | -# Download & install miniconda |
66 | | -wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh |
67 | | -chmod +x Miniconda3-latest-Linux-x86_64.sh |
68 | | -./Miniconda3-latest-Linux-x86_64.sh |
69 | | -source ~/.bashrc |
70 | | - |
71 | | -# Install python modules |
72 | 78 | git clone https://github.com/kangwonlee/nmisp |
73 | | -pushd nmisp |
74 | | -# You may choose a different environment configuration under ./tests/ folder |
75 | | -conda env create -n nmisp -f ./tests/environment.2020.07.yml |
76 | | - |
77 | | -# Start the jupyter notebook |
| 79 | +cd nmisp |
| 80 | +conda env create -n nmisp -f ./tests/environment.2023.09.yml |
78 | 81 | conda activate nmisp |
79 | | -jupyter notebook & |
80 | | -# please do not close the shell |
81 | | - |
82 | | -# to run tests |
83 | | -pytest -n auto tests/ |
| 82 | +jupyter notebook |
84 | 83 | ``` |
85 | 84 |
|
86 | | -#### [Anaconda](https://www.anaconda.com/distribution/) <br> |
87 | | - |
88 | | -* Python 3.7.x 이후<br>Python 3.7.x or latter |
89 | | -* 2019.07판 이후<br>Latter or equal to 2019.07 |
90 | | -* 명령행에서 실행해야 할 경우, 경로에 추가하도록 설정<br>To run from a command line, configure to add python to the PATH |
91 | | -* 경로 이름에 한글을 사용할 수 없음<br>Use ASCII characters for path name |
92 | | -* In addition, some of the following modules may be needed<br>아래 모듈 중 일부 추가 설치가 필요할 수 있음 |
| 85 | +### 테스트 실행<br>Running Tests |
93 | 86 |
|
94 | 87 | ``` sh |
95 | | -conda install conda-forge::tensorflow |
96 | | -conda install pytorch::pytorch |
97 | | -conda install pytorch::torchvision |
98 | | -``` |
99 | | - |
100 | | -### 깃 버전 관리 소프트웨어 : 그래픽 실행 환경<br>Git Version Control Software : Graphic user interface |
101 | | - |
102 | | -아래 가운데 택일<br>Choose one from below |
103 | | -* [SourceTree](https://www.sourcetreeapp.com/download/) |
104 | | -* [Github Desktop](https://desktop.github.com/) |
105 | | - |
106 | | -### 통합 개발 환경<br>Integrated Development Environment |
107 | | - |
108 | | -* iPython 노트북 (`.ipynb`) 파일 사용시는 반드시 필요하지 않을 수 있음<br>May not need one for iPython notebook (`.ipynb`) files |
109 | | -* 아래 가운데 택일<br>Choose one from below |
110 | | - |
111 | | -#### Spyder |
112 | | - |
113 | | -* Anaconda 와 함께 설치될 수 있음.<br>Anaconda may include spyder. |
114 | | - |
115 | | -#### [PyCharm Community](https://www.jetbrains.com/pycharm/download/) |
116 | | - |
117 | | -* PyCharm 을 실행시키기 위해 [Java Development Kit](http://www.oracle.com/technetwork/java/javase/downloads/index.html) 를 설치해야 할 수 있음 (2016 09)<br> |
118 | | -PyCharm may need [Java Development Kit](http://www.oracle.com/technetwork/java/javase/downloads/index.html) to run. |
119 | | - |
120 | | -#### [Microsoft Visual Studio Code](https://code.visualstudio.com/download) |
121 | | - |
122 | | -* Anaconda 설치 후 설치 선택 가능<br> |
123 | | -Installation [button](https://blogs.msdn.microsoft.com/pythonengineering/2018/02/15/visual-studio-code-is-now-shipping-with-anaconda/) available at the end of Anaconda installation<br> |
124 | | -* [다운로드](https://code.visualstudio.com/download) 받아서 설치도 가능<br> |
125 | | -Possible to [download](https://code.visualstudio.com/download) and install from the website<br> |
126 | | -[Setup Overview](https://code.visualstudio.com/docs/setup/setup-overview) / |
127 | | -[Python Configuration Instruction](https://code.visualstudio.com/docs/python/python-tutorial) |
128 | | -* Windows 에서 `git-bash`를 내장 터미널로 사용하려면 다음과 같은 추가 설정이 필요함.\[[참고](https://code.visualstudio.com/docs/editor/integrated-terminal)\]<br> |
129 | | -In Windows, to use `git-bash` as the integrated terminal, following additional settings would eable it.\[[Ref](https://code.visualstudio.com/docs/editor/integrated-terminal)\] |
130 | | - |
131 | | -1. File > Preferences > Settings [[참고 Ref](https://code.visualstudio.com/docs/getstarted/settings)\] |
132 | | -2. |
133 | | -```json |
134 | | -"terminal.integrated.shell.windows": **path to bash.exe here** |
| 88 | +conda activate nmisp |
| 89 | +pytest -n auto tests/ |
135 | 90 | ``` |
136 | 91 |
|
137 | 92 | ### 설치 동영상<br>Installation video |
138 | 93 | [](https://www.youtube.com/embed/videoseries?list=PLA6B0Lmr9oJNVqYMpfpbXxQCZxNrS1Xuo) |
139 | 94 |
|
140 | | -## `jupyter` 노트북<br>`jupyter` notebook |
141 | | - |
142 | | -* 이 저장소 는 주로 [`jupyter` 노트북](http://blog.ncsoft.com/?p=21870)으로 만들어져 있음.<br> |
143 | | -This repository is mostly written in [`jupyter` notebook](http://arogozhnikov.github.io/2016/09/10/jupyter-features.html).<br> |
144 | | -* `jupyter` 노트북은 웹브라우저를 통해 프로그램 코드를 수정 실행하고 LaTex 수식을 포함한 문서 작성이 가능함.<br> |
145 | | -Through a web browser, `jupyter` notebook enables editing & running program codes and writing documents including LaTex equations.<br> |
146 | | - |
147 | | -## `jupyter` 노트북 실행시키는 법<br>How to start the `jupyter` notebook |
148 | | - |
149 | | -* 적당한 folder 를 만듦 <br> Make an appropriate folder |
150 | | -* Git 또는 SourceTree 를 이용하여 위 folder 아래 이 원격 저장소를 `git clone` <br> Using the Git or SourceTree, `git clone` this repository under the folder |
151 | | -* `cmd` 또는 `git bash` 실행한 후 `cd` 명령으로 `clone` 된 지역 저장소 folder로 이동 <br> Start `cmd` or `git bash` and using the `cd` command change working folder to the cloned folder |
152 | | -* `cmd` 또는 `git bash` 에서 각각 `cd` 또는 `pwd` 로 `clone` 된 folder 인지 확인 <br>Check location using `cd` or `pwd` in `cmd` or `git bash` |
153 | | -* `jupyter notebook` 실행 <br>Run `jupyter notebook` |
154 | | -* 필요에 따라 `~/.bashrc` 파일에 다음 내용을 추가<br>As necessary, add following lines to `~/.bashrc` file |
155 | | - |
156 | | - |
157 | | -``` sh |
158 | | -alias log='git log --oneline --graph --all --decorate' |
159 | | -alias nb='jupyter notebook --no-browser &' |
160 | | -``` |
161 | | - |
162 | | -### 실행 동영상 (`git bash`) <br>Instruction video (`git bash`) |
163 | | - |
164 | | -[](https://www.youtube.com/embed/videoseries?list=PLA6B0Lmr9oJO4x4NWWedfHnCOfelU3L39) |
165 | | - |
166 | | -## 알림 <br> Acknowledgement |
| 95 | +## 알림<br>Acknowledgement |
167 | 96 |
|
168 | 97 | * This software was initially supported by the Korea Ministry of Land, Infrastructure, and Transportation. It was also supported by the Korean Agency for Infrastructure Technology Advancement. (18TLRP-B117133-03) |
169 | 98 | <br>이 소프트웨어는 대한민국 국토교통부 건설교통과학기술진흥원 교통물류연구사업의 지원을 받아 시작되었음. (18TLRP-B117133-03) |
170 | | -* Also, this software got help from generative artificial intelligence : Google Gemini Advance in improving the text and source code quality. |
171 | | -<br>또한, 이 소프트웨어는 문장과 코드 품질 향상을 위해 생성형 인공지능 구글 제미니 어드밴스의 도움을 받았음. |
| 99 | +* Also, this software got help from generative artificial intelligence : Google Gemini Advance and Anthropic Claude Opus 4.6 in improving the text and source code quality. |
| 100 | +<br>또한, 이 소프트웨어는 문장과 코드 품질 향상을 위해 생성형 인공지능 구글 제미니 어드밴스와 앤스로픽 클로드 오퍼스 4.6의 도움을 받았음. |
0 commit comments