You are on page 1of 9

Newton method assignment

Nguyen Quan Ba Hong*


Doan Tran Nguyen Tung„
Students at Faculty of Math and Computer Science,
Ho Chi Minh University of Science, Vietnam
email. dtrngtung@live.com
email. nguyenquanbahong@gmail.com
blog. http://hongnguyenquanba.wordpress.com …

Ngày 29 tháng 6 năm 2016

Tóm tắt nội dung


Bài tập về phương pháp Newton.

* Student ID: 1411103.


„ Student ID: 1411352.
… Copyright © 2016 by Nguyen Quan Ba Hong, Student at Ho Chi Minh University of
Science, Vietnam. This document may be copied freely for the purposes of education and
non-commercial research. Visit my site http://hongnguyenquanba.wordpress.comto get more.

1
Mục lục
1 Problems 3

2 Sơ đồ khối 3

3 Bài tập Newton method 6

2
1 Algorithms

Problem 1. Viết thuật toán tính A dựa theo phương pháp Newton. Vẽ sơ đố
khối và code Matlab cho thuật toán đã viết.

Solution. Để tìm căn bậc 2 của số thực dương A, ta giải phương trình
x2 − A = 0. Ở đây, ta dùng phương pháp Newton-Raphson để xấp xỉ nghiệm
của phương trình đó qua các bước sau:
1. Nhập giá trị A > 0 cần tính căn bậc 2, giá trị xấp xỉ ban đầu p0 , sai số
cho phép tol, số bước lặp tối đa trước khi dừng N .
2. Đặt i = 1, với i là biến nguyên.

3. Khi i <= N thì thực hiện vòng lặp sau:


sqrt = (p02 + A)/(2 ∗ p0)
Nếu |sqrt − p0| < tol
Thì xuất ra kết quả sqrt
Không thì gán i = i + 1 và p0 = sqrt

4. Khi i >= N mà chưa có kết quả thỏa mãn thì xuất thông báo.

2 Sơ đồ khối
Sơ đồ khối.

3
Chú thích
Begin/End
Decision (If)
Declaration

Input

Output
Decision (While)

Process

4
Begin

A, p0 , tol, N, sqrt, i

A, p0 , tol, N

False
A>0 "A must> 0"

True

i=1

False
i <= N "failed"

True
p20 +A
sqrt = 2p0

False
i = i + 1; p0 = sqrt |sqrt − p0 | < tol

True

sqrt, i

End

5
3 Bài tập Newton method
Problem 2. Viết thuật toán tính 1/A dựa theo phương pháp Newton. Vẽ sơ đố
khối và code Matlab cho thuật toán đã viết.

Problem 3. Sử dụng phương pháp Newton để giải các hệ phương trình sau:
(
x2 + y 2 = 1
1.
x2 − y = 0

xyz = 1

2. x2 + 2y 2 + 4z 2 = 7

 2
2x + y 3 + 6z = 7

2 2
x + 2 sin (yπ/2) + z = 0

3. 2xy + z = 3

 x+y
e − z2 = 0

Solution. Để giải các hệ này bằng phương pháp Newton (giả sử chỉ cần tìm 1
bộ nghiệm) trong Matlab, trước tiên ta viết hàm nrmsnle như sau:
function [X0,i]=nrmsnle(F,V,X0,tol,N)
% syms X0
i=1;
J=jacobian(F,V);
while i<=N
FX=double(subs(F,V,X0));
JX=double(subs(J,V,X0));
Y=linsolve(JX,-FX);
X0=X0+Y;
if (norm(Y)<tol)
return
end
i=i+1;
end
disp(’failed’)
end
Sau đó, ta tiến hành khai báo các biến x, y, z, các giá trị tol, N và sử dụng hàm
vừa viết cho các hệ phương trình.
syms x y z
tol=1e-7;
N=100;
(
x2 + y 2 = 1
1.
x2 − y = 0

6
Va=[x;y];
Fa=[x^2+y^2-1;x^2-y];
X0a=[1;1];
[Xa,na]=nrmsnle(Fa,Va,X0a,tol,N);
disp(’Ta co nghiem xap xi: ’)
disp(Xa)
disp(’Voi so buoc lap da thuc hien: ’)
disp(na)
Được kết quả xấp xỉ là:
x = 0.786151377757423
y = 0.618033988749895
với số bước lặp là 5.

xyz = 1

2. x2 + 2y 2 + 4z 2 = 7

 2
2x + y 3 + 6z = 7

Vb=[x;y;z];
Fb=[x*y*z-1;x^2+2*y^2+4*z^2-7;2*x^2+y^3+6*z^2-7];
X0b=[1;1;1];
[Xb,nb]=nrmsnle(Fb,Vb,X0b,tol,N);
disp(’Ta co nghiem xap xi: ’)
disp(Xb)
disp(’Voi so buoc lap da thuc hien: ’)
disp(nb)
Được kết quả xấp xỉ là:
x = −0.999999999999999
y = −1.000000000000000
z = 1.000000000000001 với số bước lặp là 16.

2 2
x + 2 sin (yπ/2) + z = 0

3. 2xy + z = 3

 x+y
e − z2 = 0

Vc=[x;y;z];
Fc=[x^2+2*sin(y*pi/2)+z^2;2*x*y+z-3;exp(x+y)-z^2];
X0c=[0;0;1];
[Xc,nc]=nrmsnle(Fc,Vc,X0c,tol,N);
disp(’Ta co nghiem xap xi: ’)
disp(Xc)
disp(’Voi so buoc lap da thuc hien: ’)
disp(nc)
Được kết quả xấp xỉ là:
x = −0.383749364134860

7
y = −4.050704688451621
z = −0.108910696982808 với số bước lặp là 26. 

The end

8
Tài liệu
[1] S. R. Otto, J. P. Denier, An introduction to programming and numerical
method in Matlab, Springer, 2005.

[2] Richard L. Burden, J. Douglas Faires, Numerical Analysis, Ninth Edition.


[3] Mats G. Larson, Fredrik Bengzon, The Finite Element Method, Theory,
Implementation and Applications, Texts in Computational Science and
Engineering 10, Springer, 2013.

[4] https://hongnguyenquanba.wordpress.com/
[5] http://www.mathworks.com/

You might also like