Notice
잘못된 내용 지적은 언제나 환영합니다.
Recent Posts
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- matlab
- LaTeX
- ┌─┐
- 수학
- 리브레위키
- C++
- 선형대수학
- HTML5.
- 프로그래밍 언어
- 물리학
- html5
- Inkscape
- 확률
- 나무위키
- IT
- 자바스크립트
- javascript
- html
- Java
- C
- python
- css3
- 위키
- 프로그래밍
- CSS
- 글이_점점_짧아지고_있습니다.
- 오늘의 문제
- 점자
- Nemeth Braille
- C언어
- Today
- Total
SturdyCobble's Study Note
MATLAB으로 Newton's Method 구현하기 본문
NOTICE : 독학인 만큼, 잘못된 내용이 있을 수 있습니다. 내용 지적은 언제나 환영합니다.
더 이상 이 블로그에는 글을 올리지는 않을 예정입니다. 그렇지만 댓글을 달아주시면 최대한 답변드리고자 노력하겠습니다.
주의 : MATLAB 배운지 얼마 안 돼서 작성한 스크립트라 의미없는 반복이나 비효율적인 지점이 발견될 수 있습니다. 또한, 일부로 수학적인 내용을 보여주기 위해 함수를 분리하거나 한 흔적이 남아있습니다.
실행 코드
syms x y z;
format long;
r(:,1) = [-2 ; 3 ; -1];
k = 1;
for k = 2:80
D = jacobian([x*y*z+1, y^2-1, x^2+z+1],[x,y,z]);
Dv = subs(D,[x y z],r(:,k-1)');
if det(Dv) == 0
break
end
r(:, k) = r(:, k-1) - Dv\f(r(:, k-1));
end
r(:,end)
f(r(:,end))
function w = f(v)
x = v(1);
y = v(2);
z = v(3);
w = [x*y*z+1;y^2-1;x^2+z+1];
end
실행 결과
ans =
0.682327803828019
1.000000000000000
-1.465571231876768
ans =
1.0e-15 *
0.111022302462516
0
0
울프람알파에서 구한 값
'프로그래밍 > MATLAB' 카테고리의 다른 글
[MATLAB] 08. 함수 (0) | 2019.09.01 |
---|---|
MATLAB으로 벡터장 표시하기 (0) | 2019.08.30 |
[MATLAB] 07. 다차원 배열 (0) | 2019.08.26 |
[MATLAB] 06. 벡터화와 사전할당 (0) | 2019.08.13 |
[MATLAB] 05. 제어식과 논리 첨자 (0) | 2019.08.12 |
Comments