목록성장캐 (131)
Divide and Conquer
일시적인 방법 import matplotlib.pyplot as plt plt.rc('font', family='Malgun Gothic') plt.rc('axes', unicode_minus=False) # 마이너스 폰트 설정 # 글씨 선명하게 출력하는 설정 %config InlineBackend.figure_format = 'retina' 영구적인 방법 import numpy as np import matplotlib as mpl print (mpl.matplotlib_fname()) # 복사해서 파일을 열어 #font.family: sans-serif을 font.family: Malgun Gothic 로 수정 # 파이썬 시각화 패키지 불러오기 import matplotlib.pyplot as plt..
1. 프롬프트에서 jupyter notebook --generate-config 2. 출력된 거 복사해서 실행 3. 열린 파일에서 수정 c.NotebookApp.notebook_dir = 'C:\Users\012vi\Desktop' 4. 실행할 아이콘 우클릭-속성-수정 대상(T): \jupyter-notebook-scripty.py "%USERPROFILE%/" → ~otebook-script.py "C:\Users\012vi\Desktop" 시작 위치(S) %HOMEPATH% 지워

전달 함수의 출제 유형 입출력 주기 미방 주기 Types of Blocks Proportional block Integration block 비례 + 적분 Derivative vlock 비례 + 미분 Simple phase-lag block ~ lead 진상 Quadratic block Combination block 블록 다이어그램 이용 시 시스템 해석이 쉬우나 복잡할 때 전달 함수 구하기 힘듦 신호흐름선도는 전달 함수 구하기 쉬움 → 블록 다이어그램을 신호흐름선도로 표현 Mason 공식을 이용하여 간단히 풀 수 있음
확장 행렬의 개념 사용, 선을 긋고 종속 벡터를 같이 써줌 가우스는 에셜런 형태로 만드는 과정이야 (주대각 아래를 다 0으로) 확장 행렬 만들어 에셜런 형태로 만드는 연산 반복 피봇 각 행의 대각선에 있는 요소들 피보팅 방정식의 순서를 바꾸는 것(행렬의 위아래 순서 등) 계산상의 문제를 해결할 뿐만 아니라 오차를 줄여주는 역할도 함 [0,1][1,0] 항등 행렬에서 만들고 싶은 피봇팅대로 변환하면 된다 이게 피봇팅 매트릭스 부분 피보팅 paritial pivoting → 주대각이 가장 크도록 하는 피봇팅 방정식의 각 행에서 피보팅을 하게 될 열을 모두 살펴보아서 가장 큰 계수가 있는 행이 피보팅 계수가 되도록 순서를 바꾸는 방식 주대각으로 나눠주기 때문에 주대각의 숫자가 큰 게 좋다 작은 값이 커지면 오..

선형대수 linear algebra 선형 연립방정식을 다루는 수학의 한 분야 행렬의 연산에 대해 다룸 ex. norm 간단한 연립방정식의 해를 구하는 것으로부터 복잡한 사물의 움직임이나 자연 현상을 알아보고자 하는 데 사용되는 미분방정식의 해를 구하는 것을 포함 선형 연립방정식 system of linear equation 선형화: 비선형을 일부만 잘라 선형처럼 해석하는 것 →선형 연립방정식 기본적으로 선형 연립방정식은 `방정식의 해가 존재해야 함` `행렬 A의 대각선 성분이 0이 아니어야 한다.` 선형 연립방정식의 해법 종류 Ax=b의 해를 구하기 가장 직관적인 방법 : x = {A}^{-1}b 행렬이 커지면 역행렬을 구하는데 상대적으로 많은 비용이 들기 때문에 비효율적 행렬식 행렬의 규모를 스칼라값으..

미분을 안 해도 됨 구간 안에 근이 존재하지 않아도 된다(초기값 2개) 할선과 𝑥 축과의 교점을 새로운 점으로 하여 근에 접근 할선(secant): 두 점을 이은 직선 접선, tangent, 법선 normal Newton-Raphson 방법보다 수렴이 더 빠른 경우도 있다. but 문제 동일(기울기를 쓰기 때문에 수렴 안 할 수도 있다) 오차를 구하기 위해 앱실론을 사용(상대오차) eps, error $$x^{(k+1)} =x^{(k)} - f(x^{(k)}){{x^{(k)} - x^{(k-1)}}\over{f(x^{(k)})-f(x^{(k-1)})}} $$ import numpy as np def f(x): return 3*x-np.cos(x)-1 n = 7 xs = np.zeros(n) # 근사값 e..

함수의 미분을 해석적으로 계산해야 함 하나의 초깃값만 설정, 발산할 수 있음(기울기가 '0'이 되기 때문에) 근의 수렴 속도가 비교적 빠름(초깃값 선정이 중요) x0부터 시작해서 x0의 기울기를 이용한 x절편이 x1이 된다 x1에서의 기울기→ 절편 → x2가 된다 → 반복 일정 수준보다 작아질 때까지 반복(상대오차) 구간을 정하는 것이 아닌 초기값을 예측하여 사용 초기값을 a라 했을 때 f(a)=0이면 방정식의 근이다 초기값을 𝑥(0)으로 가정. 여기서 (0)는 0번째 𝑥 의 값 만일 $$f(x^{(0)}) \ne 0$$이라면 새로운 예측값(근삿값) $$x^{(1)} = x^{(0)}+h$$을 대입 만일 $$f(x^{(1)}) = 0$$이라면 $$x^{(1)}$$이 방정식의 근임 테일러급수 Taylor ..

틀린 값을 계속 대입해서 같아질 때까지 반복 좌항이 일차항, x= ~ 로 일차항 보조 방정식을 만듦 이전 값과 현재 값이 동일하면 근을 찾았다 이분법보다 빠르고 초기값 1개만 줌 못 찾을 수도 있음, 특성 방정식과 초기값 설정이 중요 고정점 방법은 어떠한 형태의 특성함수도 동일한 수렴 속도를 보인다 거짓 def g(x): 좌변을 x 일차항으로 바꿔 구간 설정따로 안 해 # 고정점 def g(x): return (1 / 3) *(np.cos(x) + 1) n = 20 x0 = 3.0 x = np.zeros(n) x[0] = x0 for i in range(n-1): x[i+1]= g(x[i]) print("%5s %8s"%('k', 'x')) for k in range(n): print(("%5d %9.4..

주어진 구간의 크기를 근이 존재하는 영역을 따라가며 연속적으로 반으로 줄여감 구간이 올바르면 확실히 근을 찾음(근의 개수는 몰라, 존재하는지도 몰라) 수렴 속도 느림(fa와 fb의 부호를 비교) import numpy as np from scipy import optimize import matplotlib.pyplot as plt def f(x): return np.sqrt(3*x*np.exp(-x)) -0.5 a = 0 b = 3 [x0, fx0] = optimize.bisect(f, a, b, full_output = True) print('x0 = ', x0, 'f(x0) = ', f(x0)) # x0 = 0.09129978313876563 f(x0) = 1.3097301021502972e-12 ..
range() Python 내장 함수 list 구조를 쉽게 만들어줌 range는 list구조 x = range(7) print(x) # range(0, 7) print(list(x)) # [0, 1, 2, 3, 4, 5, 6] sum = 0 for i in range(1, 101): sum +=i print(sum) a = range(0, 20, 3) #------------------------ a = [] for i in range(0,20,3): a.append(i) a #------------------------ [0, 3, 6, 9, 12, 15, 18] 함수 같은 내용을 반복해서 실행할 경우 동일한 내용을 반복적으로 코딩하는 것은 비효율 반복되는 부분을 분리해 놓은 구문 프로그램의 길이 단..
conda env list conda create -n numerical conda update conda conda activate numerical python -m ipykernel install --user --name numerical --display-name "numerical class" jupyter notebook --notebook-dir=/디렉토리 경로 pip install numpy, scipy, sympy, matplotlib pip install ipykernel jupyter kernelspec uninstall 가상환경이름 conda env remove --n 가상환경이름 Anaconda, Jupyter 설치 및 삭제 Anaconda | Anaconda Distributio..
%autosave 60 from IPython.core.interactiveshell import InteractiveShell InteractiveShell.ast_node_interactivity = 'all' Ctrl + Enter 현재 선택한 셀 실행 Shift + Enter 현재 선택한 셀 실행 후 다음 셀 이동(없으면 생성) Alt + Enter 현재 선택한 셀 실행 후 다음 셀 생성(삽입) ESC 명령모드로 전환 Ctrl + / 선택한 행 주석 처리 Ctrl + z 입력 취소 Ctrl + y 입력 다시 되돌리기(ctrl + z 반대) Shift + Tab 도움말 확인 Ctrl + Shift + - 현재 커서 위치에서 셀 분할 shift + m 셀 병합 h 단축키 목록 확인/변경 f 문자열 검..

Jetpack 4.5 버전에서는 Object Following - Live Demo가 실행되지 않는다 하지만 4.3 버전은 jupyter_clickable_image_widget을 사용할 수 없다 Road Following 데이터를 수집할 때 게임패드만을 이용하는 것은 매우 번거롭기 때문에 4.5 버전을 따로 설치하여 이미지를 촬영하고 4.3 버전에서 트레이닝+실행하는 방법을 추천한다 ㅠㅠ Python으로 PyTorch, Tensorflow, Python, CUDA, cudnn 버전 확인하는 방법을 찾아볼 필요가 없었땨.. import torch import torch.optim as optim import torch.nn.functional as F import torchvision import tor..

방적식의 근 구하기 근의 존재 구간 중간값 정리 평균값 정리 근의 존재 여부 요약 이분법 Bisection Method 고정점 방법 Fixed point Method Newton Raphson 방법 할선법 Secant Method [데이터/수치해석] - 이분법 Bisection method [데이터/수치해석] - 고정점 방법 Fixed point Method [데이터/수치해석] - 뉴튼랩슨 Newton-Raphson [데이터/수치해석] - 할선법 Secant Method 방정식의 근 찾기 방정식의 근을 구하는 것은 f(c)=0을 만족하는 c를 구하는 것과 같다 근이 존재할 가능성이 있는 영역을 찾아(부호가 바뀌어야 함) 중간값 정리 Intermediate-value theorem 평균값 정리 Mean-v..