3. M A TL A B C A Ê N B A Û N
I. B IE Å U T H Ö Ù C ( E X P R E S S IO N )
Bieán soá ( variables)
Soá (Numbers)
Toaùn töû ( Operaters)
Haøm ( Functions)
- toái ña 19 kyù töï coù nghóa
- phaân bieät giöõa chöõ hoa vaø chöõ thöôøng.
- baét ñaàu baèng moät töø theo sau laø töø hay soá hoaëc daáu (_).
B ie á n ( V a r ia b le s ) - bieán toøan cuïc (global) taùc duïng trong toøan chöông trình.
- bieán cuïc boä (local) taùc duïng trong noäi taïi haøm (function)
- moät soá bieán ñaëc bieät: pi, ans,…
Kieåm tra bieán (w h o v a ø w h o s )
X o ù a b ie á n ( c le a r v a ø c le a r a ll)
Ví d u ï
>> c l e a r a
>> c l e a r b d e g r e e
>> a
u n d e f in e d f u n c t io n o r v a r ia b le
4. M A TL A B C A Ê N B A Û N
1. S o á ( N u m b e r s )
Taát caû nhöõng con soá ñeàu ñöôïc löu kieåu ñònh daïng (f o r ma t )
Duøng haøm f o r m a t ñ e å ñ ò n h d a ï n g k i e å u s o á :
f o r m a t ( ñ ò n h d a ïn g )
>> b=3/26;
>> format long; b >> format +; b
b= b=
0.11538461538462 +
>> format short e; b >> format rat; b
b= b=
1.1538e-001 3/26
>> format bank; b >> format short; b
b= b=
0.12 0.1154
>> format short eng; b >> format long eng; b
b= b=
115.3846e-003 115.384615384615e-003>>
>> format hex; b
b=
3fbd89d89d89d89e
5. M A TL A B C A Ê N B A Û N
2 . To a ù n tö û ( o p e r a te r s ) (+, - , * / , ,^ ,’)
,
>> 2*4+2
ans =
10 MATLAB
>> (2+sqrt(-1))^2
ans =
3.0000 + 4.0000i
Caùc bieán khoâng caàn khai baùo tröôùc.
Caùc kyù töï thöôøng vaø in laø phaân bieät.
Keát thuùc caâu leänh vôùi “;” khoâng hieån thò keát quûa caâu
leänh.
Bieán maëc nhieân “ans”
>> rayon = 1e-1;
>> surface = pi * rayon * rayon
surface =
0.0314
>> volume= 4*pi*rayon^3/3;
volume =
0.0042
6. M A TL A B C A Ê N B A Û N
H a ø m c ô b a û n ( b a s is f u n c t io n s ) a b s , s q r t , e x p , s in , …
cos( x + iy ) = cos( x) cosh( y ) − i sin( x) sinh( y )
eiz + e −iz
cos( z ) = 1
2 0.8
>> x=-pi:0.01:pi; 0.6
>> plot(x,cos(x)); grid on 0.4
0.2
0
z = x + i * y → log( z ) = log(abs ( z )) + a tan 2( y, x) * i
-0.2
>> abs(log(-1)) -0.4
ans -0.6
3.1416 -0.8
z = x + i * y → r = abs ( z ); theta = a tan 2( y, x) = a tan( y / x) -1
-4 -3 -2 -1 0 1 2 3 4
>> z = 4 + 3 i ;
>> r = a b s ( z )
>> t h e t a = a t a n 2 ( i m a g ( z ) , r e a l ( z ) ) >> z=r*exp(theta*i)
r = z=
5 4.0000+3.0000i
the ta =
0 .6 4 3 5
7. M A TL A B C A Ê N B A Û N
Ö u t ie â n c a ù c p h e ù p t o a ù n
>> a=2; b=3; c=4;
>> a*b^c
ans =
162
>> (a*b)^c
ans =
1296
o , lö u v a ø m ô û t a ä p t in ( f p r in t f , s a v e , f s c a n f , lo a d , f o p e n , f
x = 0:.1:1; y = [x; exp(x)]; 0.00 1.00000000
fid = fopen('exp.txt','w'); 0.10 1.10517092
fprintf(fid,'%6.2f %12.8fn',y); ...
fclose(fid); 1.00 2.71828183
C höô ng C h ö ô n g t r ìn h
t r ìn h c on
c l e a rc a líln h l c
h ; c f u n c t io n
A=
f i l e _d u l i e u f i l e _d u l i e u 1 2 3
lo a d d u lie u , A =[ 1 2 3 ; 4 5 4 5 6
A 6 ;7 8 9 ] ; 7 8 9
s a v e d u lie u A
8. M A TL A B C A Ê N B A Û N
a ø m x ö û l y ù s o á ( f i x , f l o o r , c e i l , r o u n d , s i g n , s o r t …)
round: laøm troøn
fix: laøm troøn veà 0 >> a=[1.25,-4.54,6.5,-7.1];
>> a=[1.25,-4.54,6.5,-7.1]; >> round(a)
>> fix(a) ans =
ans = 1 -5 7 -7
1 -4 6 -7 s ig n : h a ø m d a á u v ô ù i g ia ù
floor: laøm troøn veà aâm voâ cuøng t r ò ñ ô n v ò
>> a=[1.25,-4.54,6.5,-7.1]; >> a=[1.25,-4.54,6.5,-7.1];
>> floor(a) >> sign(a)
ans = ans =
1 -5 6 -8 1 -1 1 -1
sort: saép xeáp töø nhoû ñeán lôùn
ceil: laøm troøn veà döông voâ cuøng >> a=[1.25,-4.54,6.5,-7.1];
>> a=[1.25,-4.54,6.5,-7.1]; >> sort(a)
>> ceil(a) ans =
ans = -7.1000 -4.5400 1.2500 6.5000
2 -4 7 -7
9. M A TL A B C A Ê N B A Û N
II. M A T R A Ä N V A Ø V E C T Ô “ [ …; …; …] ”
>> A = [ 1, 2, 3; 4, 5, 6; 7, 8, 10]
A =
123
456
7 8 10
>> A(3,3) = 17
A= “;” coù nghóa laø chuyeån sang haøng
123 keá tieáp.
456 “,” hay “ “ phaân caùch giöõa caùc
7 8 17 phaàn töû.
>> vec = [10; 0; 1000]
vec =
10
0
1000
>> A’
ans =
147
258
3 6 17
10. M A TL A B C A Ê N B A Û N
>> t = 1:5
t=
12345
>> row = A(1,:)
row =
123 “:” coù nghóa laø taát caû.
>> col = A(:,1) “:” töø giaù trò naøy tôùi giaù trò khaùc.
col = “:” töø giaù trò naøy tôùi giaù trò khaùc böôùc bao
1 nhieâu.
4
7
>> 1:0.3:2
ans =
1 1.3000 1.6000 1.9000
>> tt = t(:)
tt =
1
2
3
4
5
11. M A TL A B C A Ê N B A Û N
Ma traän phöùc.
>> imag(b)
>> b = [4; 5-15*i; -5;2+i]; ans =
>> abs(b) 0
ans = -15
4.0000 0
15.8114 1
5.0000 >> angle(b)
2.2361 ans =
>> conj(b) 0
ans = -1.2490
4.0000 3.1416
5.0000 +15.0000i 0.4636
-5.0000 >> atan2(imag(b),real(b))
2.0000 - 1.0000i ans =
>> real(b) 0
ans = -1.2490
4 3.1416
5 0.4636
-5
2
12. M A TL A B C A Ê N B A Û N
Haøm taïo ma traän ñaëc bieät.>> A =z e r o s ( 3 ) >> C =o n e s ( 3 )
A =
zeros(n) C =
0 0 0
zeros(m,n) 0 0 0
1 1 1
1 1 1
zeros([m n]) 0 0 0
1 1 1
zeros(size(A)) >> B =z e r o s ( 2 , 3 )
>> D =e y e ( 3 )
B =
ones(n) 0 0 0
D =
ones(m,n) 0 0 0
1 0 0
0 1 0
ones([m n]) >> s i z e ( A )
0 0 1
a ns =
ones(size(A)) >> e y e ( 3 , 2 )
3 3
eye(n) >> z e r o s ( s i z e ( B ) )
a ns =
1 0
eye(m,n) a ns =
0 1
eye(size(A)) 0 0 0
0 0
0 0 0
pascal >> n u m e l ( B )
>> p a s c a l ( 3 )
magic a ns =
a ns =
1 1 1
numel(A) 6
1 2 3
>> l e n g t h ( B )
length(A) a ns =
1 3 6
rand(m,n) 3
>> m a g i c ( 3 )
a ns =
diag(v,k), diag(v) >> r a n d ( 3 , 2 )
8 1 6
tril, triu a ns =
3 5 7
0 .9 5 0 1 0 .4 8 6 0
linspace(a,b), linspace(a,b,n) 0 . 2 3 11 0 . 8 9 13 4 9 2
logspace(a,b,n) 0 .6 0 6 8 0 .7 6 2 1
13. M A TL A B C A Ê N B A Û N
>> d i a g ( [ 2 1 2 ] , 1)
a ns =
0 2 0 0
0 0 1 0
0 0 0 2
0 0 0 0
>> d i a g ( A )
a ns =
1
5
9
>> t r i u ( A ) >> A =[ 1 2 3 ;4 5 6 ;7 8 9 ]
a ns = A =
1 2 3
0 5 6 1 2 3
0 0 9 4 5 6
>> t r i l ( A ) 7 8 9
a ns =
1 0 0
4 5 0
7 8 9
>> l i n s p a c e ( 1, 2 , 4 )
a ns =
1. 0 0 0 0 1. 3 3 3 3
1. 6 6 6 7 2 .0 0 0 0
>> l o g s p a c e ( 1, 2 , 4 )
a ns =
10 . 0 0 0 0 2 1. 5 4 4 3
4 6 . 4 15 9 10 0 . 0 0 0 0
14. M A TL A B C A Ê N B A Û N
I . C A ÙC P HE ÙP T OÙA N T R E Â N M A T R A Ä N V A Ø V E C T
P he ùp C h u ù t h íc h
t ín h
+, - C o ä ng ho a ë c trö ø ha i
m a t r a ä n c u ø n g k íc h
A *B N hta â n ù c i m a t r a ä n A
höô ha
A /B C hv a ø a i m a t r a ä n ( c h i a
ia h B
A B C hp a a r a )ù A hvaai ømB t r a ä n
i h tûi i a
A . *B N hB â n ø öA n g p h a à n t ö û
a va t ø
c uûa ha i ma tra ä n A
A . /B C hv a ø öB n g p h a à n t ö û
ia t ø
c uûa ha i ma tra ä n A
A .B C hv a ø öB n g p h a à n t ö û
ia t ø
c uûa ha i ma tra ä n B
.^ M uvõ ø h o t ö ø n g p h a à n
a c A
tö û c uû a m a û ng
15. M A TL A B C A Ê N B A Û N
>> A =[ 1 2 3 ; 4 5 6 ; 7 8 9 ] D =[ A C ]
>>
A = D =
1 2 3 1 2 3 -4 2 3
4 5 6 4 5 10 1 2 1
7 8 9 7 8 9 2 5 6
>> A ( 2 , 3 ) =10 >> D ( 5 )
A = a ns =
1 2 3 5
4 5 10 >> D ( 4 , 5 )
7 8 9 ? ? ? In d e x e x c e e d s m a t r ix d im e n s io n s .
>> B =A ( 2 , 1) >> X =D
B = X =
4 1 2 3 -4 2 3
>> C =[ -4 2 3 ; 1 2 1; 2 5 6 ] 4 5 10 1 2 1
C = 7 8 9 2 5 6
-4 2 3 >> X ( 2 , 6 )
1 2 1 a ns =
2 5 6 1
>> X ( 2 , : )
a ns =
4 5 10 1 2 1
16. X =
1 2 M A TL A B C A Ê N B A Û N
3
-4 2 3
4 5 10
>> X ( : , e n d )
1 2 1
a ns =
7 8 9 3
2 5 6 1
6
>> E =X ( [ 2 3 ] , [ 1 3 ] )
E =
> X ( : , 1) 4 10
ns = 7 9
1 >> X ( 2 , e n d )
4 a ns =
7 1.
> 1: 5 >> X ( 3 , : ) =[ ]
ns = X =
1 2 3 4 5 1 2 3 -4 2 3
> 3 0 : - 4 : 15 4 5 10 1 2 1
ns = >> X ( : , 5 ) =[ 3 4 ]
30 26 22 18 X =
> X ( 2 :3 , :) 1 2 3 -4 3 3
ns = 4 5 10 1 4 1
4 5 10 1 2 1 >> X ( 2 , : )
7 8 9 2 5 6 a ns =
4 5 10 1 2 1
17. M A TL A B C A Ê N B A Û N
>> C ( 4 , : ) =[ 8 4 6]
C =
-4 2 3
1 2 1
2 5 6
8 4 6
>> C ( : , 4 ) =[ 8 4 6 1] ’
C =
-4 2 3 8 C =
1 2 1 4
2 5 6 6 -4 2 3
8 4 6 1 1 2 1
>> C =[ C o n e s ( 4 ) ;z e r o s ( 4 ) e ye ( 4 ) ] 2 5 6
C =
-4 2 3 8 1 1 1 1
1 2 1 4 1 1 1 1
2 5 6 6 1 1 1 1
8 4 6 1 1 1 1 1
0 0 0 0 1 0 0 0
0 0 0 0 0 1 0 0 Ma traän phöùc.
0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 1
18. M A TL A B C A Ê N B A Û N
Haøm xöû lyù ma traän vaø vectô (size, median, max, min, mean, sum,
length,…)
>> s i z e ( C )
a ns =
3 3 C =
>> m e a n ( B ) -4 2 3
a ns = 1 2 1
2 .6 6 6 7
2 5 6
>> s u m ( B )
a ns = B =
16 1 5 6
>> m i n ( C ) -5 7 2
a ns =
-4 2 1
>> s o r t ( C )
a ns =
-4 2 1
1 2 3
2 5 6
19. M A TL A B C A Ê N B A Û N
• II. G ia û i h e ä p h ö ô n g t r ìn h t u y e á n t ín h v a ø p h i t u y e á n
b a è n g h a ø m t h ö v ie ä n M a t la b : s o lv e
1. Heä ñaïi soá tuyeán tính A*x=b
>>clear all
>>clc
>>A=[1 3 6;2 7 8;0 3 9];
>>b=[10;9;8];
>>x=inv(A)*b %(x=Ab) x1 + 3 x 2 + 6 x3 = 10
x= 2 x1 + 7 x 2 + 8 x3 = 9
7.8571
-3.1905 0 x1 + 3 x 2 + 9 x3 = 8
1.9524
2. Heä ñaïi soá tuyeán tính A*x=b , solve
>>S=solve('x+3*y+6*z=10','2*x+7*y+8*z=9','3*y+9*z=8')
S=
x: [1x1 sym]
y: [1x1 sym]
z: [1x1 sym]
>> eval([S.x S.y S.z])
ans =
7.8571 -3.1905 1.9524
20. M A TL A B C A Ê N B A Û N
3. Heä ñaïi soá tuyeán tính A*x=b, LU
decomposition
>> c l e a r a l l
>> c l c
>> [ L , U ] =l u ( A )
L =
0 .5 0 0 0 - 0 . 16 6 7 1. 0 0 0 0
1. 0 0 0 0 0 0
0 1. 0 0 0 0 0 x1 + 3 x 2 + 6 x3 = 10
U =
2 .0 0 0 0 7 .0 0 0 0 8 .0 0 0 0 2 x1 + 7 x 2 + 8 x3 = 9
0 3 .0 0 0 0 9 .0 0 0 0
0 x1 + 3 x 2 + 9 x3 = 8
0 0 3 .5 0 0 0
>> x =U ( L b )
x =
7 .8 5 7 1
-3 . 19 0 5
1. 9 5 2 4
>> x =i n v ( U ) * i n v ( L ) * b
x =
7 .8 5 7 1
-3 . 19 0 5
1. 9 5 2 4
21. M A TL A B C A Ê N B A Û N
C A Ù C P H E Ù P TO Ù A N TR E ÂN Ñ A TH Ö Ù C
T ín h g ia ù t r ò ñ a t h ö ù c
> pol=[1,2,3,4]
pol =
1234
> polyval(pol,-1)
ans =
2
T ìm n g h ie ä m ñ a t h ö ù c
> pol=[1,2,3,4]
pol =
1234
> roots(pol)
ans =
-1.6506+ 0.0000j
-0.1747+ 1.5469j
-0.1747- 1.5469j
22. M A TL A B C A Ê N B A Û N
Nh a â n v a ø c h ia ñ a t h ö ù c
Cho hai ña thöùc: f1 = s 2 + 7 s + 12 f2 = s2 + 9
Haõy tính f 3 = f 1 * f 2
> f1=[1 7 12];
> f2=[1 0 9]; f3 = s 4 + 7 s 3 + 21s 2 + 63s + 108
f3=conv(f1,f2)
f3= 1 7 21 63 108
Cho hai ña thöùc: f 4 = s 4 + 9s 3 + 37 s 2 + 81s + 52 f5 = s 2 + 4 s + 13
Haõy tính f6 = f 4 / f5
> f4=[1 9 37 81 52];
> f5=[1 4 13]; f 6 = s 2 + 5s + 4
[f6 r]=deconv(f4,f5)
f6= 1 5 4
r= 0 0 0 0 0
r laø phaàn dö cuûa pheùp chia
23. M A TL A B C A Ê N B A Û N
T ín h ñ a ï o h a ø m ñ a t h ö ù c : p o l y d e r (p )
>> p=[2 0 9 1];
>> polyder(p);
a ns =
6 0 9
Phaân raõ ña
Phaân r aõ ña t höùc
2s3 + 9s + 1
thöùc: F (s) = 3 2
s + s + 4s + 4
> a=[2 0 9 1];
> b=[1 1 4 4];
> [r,p,k]=residue(a,b) [b ,a ]=r e s id u e (r ,p ,k )
24. M A TL A B C A Ê N B A Û N
Bieåu thöùc phaân raõ ?
P h ö ô n g p h a ù p b ìn h p h ö ô n g t o á i t h ie å u t r o n g x ö û l y ù s o á l ie ä u t h ö ï c n g h ie ä m
> x=[1 3 10];
> y=[10 18 37];
> polyfit(x,y,1) y = 2.92537 x + 8.01493
ans =
2.92537 8.01493
25. M A TL A B C A Ê N B A Û N
1
8 . Noä i s uy
0.8
0.6
No ä i s u y d ö õ l ie ä u mo ä t c h ie à u :
0.4
in t e r p 1 (x ,y ,x i)
> x= 0 : 10 ; 0.2
> y = sin(x); 0
> xi= 0 : .5 : 10;
-0.2
-0.4
> yi= interp1(x,y,xi); -0.6
-0.8
-1
0 1 2 3 4 5 6 7 8 9 10
No ä i s u y d ö õ l ie ä u mo ä t c h ie à u ñ a t h ö ù c b a ä c
b a : s p l in e (x ,y ,x i)
> x= 0 : 10 ; 1
> y = sin(x);
0.8
> xi= 0 : .5 : 10;
0.6
0.4
> yi= spline(x,y,xi); 0.2
0
-0.2
-0.4
-0.6
-0.8
-1
0 1 2 3 4 5 6 7 8 9 10
26. M A TL A B C A Ê N B A Û N
No ä i s u y d ö õ l ie ä u h a i c h ie à u :
in t e r p 2 (x ,y ,z ,x i,y i)
> [x,y]= messhgrid(-3 : .25 : 3) ;
> z = peaks(x,y);
> [xi, yi]= messhgrid(-3 : .125 : 3) ;
> zi= interp2(x,y,z,xi,yi)
> hold on
> mesh(x,y,z), mesh(xi,yi,zi)
27. M A TL A B C A Ê N B A Û N
9 . G ia û i p h ö ô n g t r ìn h , h e ä p h ö ô n g t r ìn h v i
p ha â n thö ô ø ng
Ha ø m : d s o l v e (e q 1 ,e q 2 ,… o n d 1 ,c o n d 2 ,… )
,c ,v
Ví d uï Ke á t qua û
dsolve('Dy = a*y') exp(a*t)*C1
dsolve('Df = f + sin(t)') -1/2*cos(t)-1/2*sin(t)+exp(t)*C1
dsolve('(Dy)^2 + y^2 =
-sin(-s+C1)
1','s')
dsolve('Dy = a*y', 'y(0) = b') exp(a*t)*b
dsolve('D2y = -a^2*y',… cos(a*t)
'y(0) = 1', 'Dy(pi/a) = 0')
x = cos(t)*C1+sin(t)*C2
dsolve('Dx = y', 'Dy = -x')
y = -sin(t)*C1+cos(t)*C2
28. M A TL A B C A Ê N B A Û N
Ha ø m : d s o l v e (e q 1 ,e q 2 ,… o n d 1 ,c o n d 2 ,… )
,c ,v
Ví du: giaûi phöông trình vi phaân
caáp hai && + 81y = 16 cos ( 7t )
y
Vôùi ñieàu kieän
ñaàu y ( 0 ) = 0, y ' ( 0 ) = 0
>y= dsolve(‘D2y+81*y=16*cos(7*t)’,’y(0)=0’,’Dy(0)=0’,’t’) ;
> t = linspace(0,2*pi,400);
1
>y= subs(y,t) ;
> plot(t,y) 0.8
0.6
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
-1
2 2.5 3 3.5 4 4.5 5 5.5 6 6.5
29. M A TL A B C A Ê N B A Û N
Ha ø m : d s o l v e (e q 1 ,e q 2 ,… o n d 1 ,c o n d 2 ,… )
,c ,v
Vôùi solver töông öùng vôùi ode45, ode32, ode113, ode15s, ode23s, ode23t,
ode23tb
C uù [T,Y] = solver(odefun,tspan,y0)
pha ùp
y = f ( , y)
o d e f u n laø haøm beân veá phaûi cuûa phöông ttrình
'
C huù t s p a n laø khoaûng laáy tích phaân [t0 tf] ñeå coù
t h íc h ñöôïc nghieäm taïi nhöõng thôøi ñieåm xaùc ñònh.
tspan = [t0,t1,...,tf].
Ví du: giaûi phöông trình vi ñieàu kieän ñaàu.
y 0 laø vector phaân
thöôøng y ' ( t ) + y ( t ) = 1 vôùi y ( 0 ) = 0
0.9
> f=inline(‘1-y’,’t’,’y’) 0.8
> [t, y]= ode45(f, [0 2],0) ; 0.7
> plot(t,y) ; 0.6
0.5
0.4
0.3
0.2
0.1
00 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
30. M A TL A B C A Ê N B A Û N
Ha ø m : d s o l v e (e q 1 ,e q 2 ,… o n d 1 ,c o n d 2 ,… )
,c ,v
Ví du: giaûi phöông trình vi phaân
caáp hai && ( t ) + By ( t ) + Ω 2 y ( t ) = A0 sin ( ω t )
y &
Ñöa phöông trình vi phaân caáp hai veà heä hai phöông trình vi phaân
caáp moät
y1 = y2
&
&y2 = A0 sin ( ωt ) − By2 − Ω 2 y1
> y0=[1 0];
> tspan=[0 3.5];
> B=2.5; OME=150; ome=122; A0=1000;
> [t,y]=ode45(‘f’,tspan,y0,[],B,OME,A0,ome)
> subplot(2,1,1), plot(t,y(:,1))
> subplot(2,1,2), plot(t,y(:,2))
> %%%%%%%%%%%%%%%%%%%%%
> function dy=f(t,y,flag,B,OME,A0,ome)
> dy= zeros(2,1) ;
> dy(1)=y(2);
> dy(2)=-B*y(2)-OME*y(1)+A0*sin(ome*t) ;
31. M A TL A B C A Ê N B A Û N
8 . L a ä p t r ìn h v ô ù i
Matlab l a bpheùp laäp trình theo hai hình thöùc: SCRIPTS vaø
M a t cho
function
Laø hình thöùc ñôn giaûn nhaát cuûa M-file, noù
khoâng coù thoâng soá vaøo vaø ra. Laø taäp hôïp
caùc leänh vaø haøm cuûa Matlab. Taát caû caùc
bieán taïo ra trong Scripts ñeàu coù theå söû duïng
Scripts sau khi Scripts keát thuùc.
-----------------------------------------------------------------
M-file: vidu.m
x= 0:0.01:2*pi;
y=sin(x);
plot(x,y);
Laø Scripts tuy nhieân coù theâm ñoái soá vaøo
(input arguments) vaø ñoái soá ñaàu ra (output
argument). Taát caû caùc bieán hoaït ñoäng trong
function moät Workspace rieâng. Bieán trong function chæ
laø bieán cuïc boä.
-----------------------------------------------------------------
M-file: doido.m
function rad = doido(do)
32. M A TL A B C A Ê N B A Û N
8 . L a ä p t r ìn h v ô ù i
M a t la b
Hình thöùc khai baùo
haøm
- Töø khoaù function baét buoäc phaûi khai baùo.
- Thoâng soá ñaàu ra: neáu coù nhieàu giaù trò traû veà, caùc thoâng soá
naøy ñöôïc ñaët trong daáu “[ ]”. Neáu khoâng coù giaù trò traû veà ta coù
theå ñeå troáng hay ñeå daáu [].
- Teân haøm
-Thoâng soá ñaàu vaøo ñöôïc khai baùo trong daáu ()
- Bieán toaøn cuïc vaø ñòa phöông
33. M A TL A B C A Ê N B A Û N
8 . C a á u truùc
ñ i Caáuk i e äñieàu
e à u truùc n Toaùn YÙ nghóa
kieän: if töû
< Nhoû hôn
<= Nhoû hôn hoaëc
> baèng
Lôùn hôn
if (bieåu thöùc logic)
nhoùm leänh >= Lôùn hôn hoaëc
end == baèng nhau
Baèng
~= Khoâng baèng
if (bieåu thöùc logic)
nhoùm leänh 1
else
nhoùm leänh 2
end
34. M A TL A B C A Ê N B A Û N
8 . C a á u truùc
ñ i e à truùc i e ä n
Caáu u k ñieàu kieän:
if…end
if (bieåu thöùc logic)
nhoùm leänh 1
elseif
nhoùm leänh 2
B a ø i ta ä p
else
nhoùm leänh 3 -b ) /n v a ø x i = a +i * h t í n h t í c h p h a â n c u û a
h =( a
end h a ø m f =c o s ( x ) +s i n ( x ) c h o a =0 , b =p i /3
Giaûi thuaät
35. M A TL A B C A Ê N B A Û N
V í d u ï: t a ïo m o ä t m e n u lö
8 . C a á u truùc c h o ïn
ñeCaáu truùc ä n kieän: switch …
i à u k i e ñieàu f p r in t f ( ' n ' ) ;
case f p r in t f ( ' S e le c t a c a s e : n ' ) ;
f p r i n t f ( ' ============== n ' ) ;
switch (bieåu thöùc ñieàu kieän) f p r in t f ( ' 1 - p i n ' ) ;
f p r in t f ( ' 2 - e n ' ) ;
case (giaù trò 1 bieåu thöùc) f p r in t f ( ' 3 - i n ' ) ;
nhoùm leänh 1 f p r i n t f ( ' ============== n ' ) ;
otherwise n = in p u t ( ' ' ) ;
s w it c h n
nhoùm leänh 2 c ase 1
end d is p ( ' P i = ' ) ; d is p ( p i) ;
c ase 2
Ví duï: taïo moät menu löïa choïn d i s p ( ' e = ' ) ; d i s p ( e x p ( 1) ) ;
chon = input(‘Nhap vao lua chon cua ban, chon=
c ase 3
’) d is p ( ' i = ' ) ; d is p ( i) ;
Switch chon o t h e r w is e
case 1 d is p ( ' N o t h in g t o d is p la y ' ) ;
e nd
disp(‘menu ve do thi ’); S e le c t a c a s e :
case 2 ==============
disp(‘menu noi suy da thuc ’); 1 - pi
2 - e
otherwise 3 - i
==============
disp(‘thoat khoi chuong trinh ’); 1
end Pi =
3 . 14 16
36. M A TL A B C A Ê N B A Û N
8 . C a á u t r u ù c la ë p c o ù
ñ i e Caáu k i e ä n coù ñieàu kieän:
à u truùc laëp
while
while (bieåu thöùc ñieàu kieän)
nhoùm leänh
end
Ví duï: yeâu caàu nhaäp vaøo giaù trò cho
bieán x. vieäc nhaäp chæ keát thuùc khi x
coù giaù döông
a= input(‘Nhap vao gia tri a: ’)
while a<=0
disp(‘a lon hon khong ’);
a= input(‘Nhap vao gia tri a: ’)
end
B a ø i ta ä p
Tính toång cuûa chuoãi:
37. M A TL A B C A Ê N B A Û N
9 . C a á u t r u ù c la ë p
Caáu truùc laëp:
for
for bieán = bieåu thöùc
nhoùm leänh
end
Ví duï: vieát chöông trình nhaäp vaøo möôøi giaù trò cho
bieán A
for i = 1 : 10
tb=strcat(‘Nhap gia tri cho A(’,num2str(i),’) = ’);
A(i)= input(‘’)
end
A
B a ø i ta ä p
h g ia ù t r ò t r u n g b ìn h v a ø ñ o ä le ä c h c h u a å n c u û a d ö õ lie ä u c h ö ù a
x n ] ñ ö ô ïc ñ ò n h n g h ó a t h e o c o â n g t h ö ù c s a u
39. NOÄ I
DUNG:
Baøi toaùn giaù trò
ñaàu :
V í d u ï ñ ò n h lu a ä t 2
N e w to n
P h ö ô n g p h a ù p E u le r
P h ö ô n g p h a ù p ñ ie å m
g iö õ a
P höông pha ùp Rung e -
Baøi toaùn giaù trò
K utta
bieân : P h ö ô n g t r ìn h v i p h a â n
c aáp 2 :
P h ö ô n g t r ìn h v i p h a â n
c aáp 4
40. Ví duï ñònh l uaät
2 Ne wt o n
1. 1 V í d u ï ñ ò n h l u a ä t 2 N e w t o n :
F = ma
Gia toác laø ñaïo haøm baäc 1 cuûa vaän toác theo thôøi gian, do
ñoù :
dv
=a
vaø dt
dv F
=
dt m
M in h h o ïa :
Ñònh luaät 2 Newton cho moät vaät
noùng boû vaøo trong moâi tröôøng chaát
loûng. Söï thay ñoåi nhieät ñoä theo thôøi gian
cuûa vaät ñöôïc moâ taû bôûi phöông trình vi Ts
phaân caân baèng naêng löôïng.
dT
mc = −Q
dt
41. Ví duï ñònh l uaät
2 Ne wt o n
ù i n h ie ä t n a ê n g d o la ø m la ïn h :
Q = hA(Ts − T∞ )
û v a ä t l i e ä u c o ù t í n h c a ù c h n h i e ä t c a o : => T s =T
dT dT hA
mc = −hA(T − T∞ ) h o a ë c =− (T − T∞ )
dt dt mc
V í d u ï 1:
dy
= −y y (0) = y 0
dt
g t r ìn h n a ø y c o ù t h e å t íc h p h a â n t r ö ïc t ie á p :
dy y
= −dt ln = −t
C2
y
ln y = -t + C y = C2e-t
ln y –lnC2 = -t y = y0e-t
42. Ví duï ñònh l uaät
2 Ne wt o n
T íc h p h a â n s o á c u û a c a ù c p h ö ô n g
t r ìn h v i p h a â n
C ho : dy
= f (t , y ); y (0) = y0
dt
á t q u a û c h ín h x a ù c t a ïi g ia ù t r ò t b a á t k ì :
t j = t 0 + jh
la ø b ö ô ù c t h ô ø i g ia n .
G o ïi:
y
y( t ) = k e á t
q u a û c h ín h x a ù c Keát quaû soá taïi t3
f ( t0,y0) = ñoä doác ñoà thò taïi
(t0,y0)
y( tj ) = k e á t q u a û
c h ín h x a ù c t a ïi t j
yj = k e á t q u a û g a à n Keát quaû chính xaùc y(t)
ñ u ù n g t a ïi t j y0
f( tj , yj ) = k e á t q u a û t
g a à n ñuùng c uûa ha øm
v e à p h ía p h a û i t a ïi t
43. Phöông phaùp
Eul e r
C h o h = t 1 – t 0 v a ø ñ ie à u k ie ä n
b a n ñ a à u , y = y ( t 0 ) , t ín h :
y1 = y 0 + hf (t 0 , y 0 )
y 2 = y1 + hf (t1 , y1 )
...
y j +1 = y j + hf (t j , y j )
Hoaëc
y j = y j −1 + hf (t j −1 , y j −1 )
V í d u ï 2 : S ö û d u ïn g p h ö ô n g p h a ù p
E u le r ñ e å t ín h
dy
= t − 2y y(0) = 1
Ke á t qua û
dt
c h ín h x a ù c la ø :
1
y j = y j −1 + hf (t j −1 , y j −1 ) y = [2t − 1 + 5e −2t ]
4
44. Phöông phaùp
Eul e r
f (t j −1 , y j −1 ) Euler C.xaùc Sai soá
j tj yj=yj+hf(tj-1,yj-1) y(tj) yj-y(tj)
0 0.0 NaN (Ñk ban ñaàu) 1.000 1.000 0
1 0.2 0-(2)(1) = - 2.000 1.0 + (0.2)(-2.0) = 0.60 0.688 -0.0879
2 0.4 0.2 – (2)(0.6) = -1.000 0.6 + (0.2)(-1.0) = 0.40 0.512 -0.1117
3 0.6 0.4 – (2)(0.4) = -0.4 0.4 + (0.2)(- 0.4) = 0.32 0.427 -0.1065
S o s a ùnh vô ùi Ñ o á i vô ùi h ña õ
ño à thò : b ie á t , s a i s o á lô ù n
nha á t tro ng k e á t
q u a û s o á ñ o ù la ø
s a i s o á r ô ø i r a ïc
t o a ø n c u ïc
max (∑ ( y j − y (t j )) )
j
45. Phöông phaùp
Eul e r
Ñ a ù n h g i a ù
s ai s oá :
S a i s oá ñòa phöông t a ïi
m o ã i b ö ô ù c la ø :
ej = yj – y(tj)
v ô ù i y ( t j) la ø k e á t q u a û c h ín h x a ù c t a ïi
tj
G D E = ma x( e j )
j = 1, …
G ia û i b a è n g M a t la b :
h max(ej )
function [t,y] = odeEuler(diffeq,tn,h,y0)]
0.200 0.1117
0.100 0.0502 t = (0:h:tn)’;
0.050 0.0240 n = length(t);
0.025 0.0117 y = y0 + ones(n , 1);
for j = 2 : n
y(j) = y(j – 1) + h* feval(diffeq,t(j -1),y(j-1));
end
>> rhs = inline(‘cos(t)’,’t’,’y’) ;
>> [t,Y] = odeEuler(rhs,2*pi,0.01, 0) ;
>> plot(t,Y,’o’) ;
46. Phöông phaùp
ñ ie å m g iö õ a
Taêng möùc ñoä chính xaùc baèng caùch tính ñoä nghieâng 2 laàn trong moãi
böôùc cuûa h:
k1 = f (t j , y j )
Tính moät giaù trò cuûa y taïi
ñieåm giöõa :
f (t j , y j )
h
y j +1 / 2 = y j +
2
Ñaùnh giaù laïi ñoä
nghieâng
h h
k 2 = f (t j + , y j + k1 )
2 2
Tính giaù trò cuoái cuøng cuûa y
y j +1 = y j + hk 2
47. Phöông phaùp
ñ ie å m g iö õ a
yj töø phöông phaùp
Euler
ñaùnh giaù ñoä
doác taïi
t +0.5h
j -1
keát quaû chính xaùc j -1
y
+0.5hk1 taïi y
j
-1
y töø phöông phaùp ñieåm
y j
j -1 giöõa
0.5h 0.5h
t t
j -1 j
G ia û i b a è n g M a t la b :
function [t,y] = odeMidpt(diffeq,tn,h,y0)]
t = (0:h:tn)’;
>> rhs = inline(‘cos(t)’,’t’,’y’) ; n = length(t) ;
>> [t,Y] = odeEuler(rhs,2*pi,0.01, 0) ; y = y0 + ones(n , 1) ;
>> plot(t,Y,’o’) ; h2= h /2 ;
for j = 2 : n
k1 = feval(diffeq,t(j -1),y(j-1)) ;
k2 = feval(diffeq,t(j -1)+h2,y(j-1)+h2*k1) ;
y(j) = y(j – 1) + h* k2 ;
end
48. Phöông phaùp
ñ ie å m g iö õ a
So saùnh phöông phaùp Midpoint vôùi phöông phaùp
Euler
Giaûi:
dy
= −y y(0) = 1 0≤ ≤
t 1
dt
Keát quaû chính xaùc laø :
y = e-t
h flopeE errE flopeH errH
0.20000 31 4.02e-02 57 2.86e-03
0.10000 61 1.92e-02 112 6.62e-04
0.05000 121 9.39e-03 222 1.59e-04
0.02500 241 4.66e-03 442 3.90e-05
0.01250 481 2.31e-03 882 9.67e-06
0.00625 961 1.15e-03 1762 2.41e-06
49. Phöông phaùp
Ru n g e - Ku t t a
4 vò trí öùng vôùi moãi böôùc laëp:
k1 = f (t j , y j )
h h
k 2 = f (t j + , y j + k1 )
2 2
h h
k 3 = f (t j + , y j + k2 )
2 2
k 4 = f (t j + h, y j + hk 3 )
Ta tính ñöôïc yj+1
k k k k
y j +1 = y j + h 1 + 2 + 3 + 4
6 3 3 6
50. Phöông phaùp
Ru n g e - Ku t t a
G ia û i b a è n g M a t la b
>> rhs = inline(‘cos(t)’,’t’,’y’) ; function [t,y] = odeRK4(diffeq,tn,h,y0)]
>> [t,Y] = odeRK4(rhs,2*pi,0.01, 0) ; t = (0:h:tn)’;
>> plot(t,Y,’o’) ; n = length(t) ;
a ø m t h ö v ie ä n M a t la b y = y0 + ones(n , 1) ;
h2= h /2 ; h3= h /3 ; h6= h /6 ;
[t,Y] = ode45(diffep,tn,y0) for j = 2 : n
>> rhs = inline(‘cos(t)’,’t’,’y’) ; k1 = feval(diffeq, t(j -1), y(j-1)) ;
>> [t,Y] = ode45(rhs,[0 2*pi], 0) ; k2 = feval(diffeq , t(j -1)+h2, y(j-1)+h2*k1 ) ;
>> plot(t,Y,’r’,’linewidth’,2) ; k3 = feval(diffeq , t(j -1)+h2, y(j-1)+h2*k2 ) ;
k4 = feval(diffeq , t(j -1)+h , y(j-1)+h*k3) ;
y(j) = y(j – 1) + h6* (k1+k4) + h3*(k2+k3);
end
51. Phöông phaùp
Ru n g e - Ku t t a
So saùnh E uler, M idpoint vaø R K 4:
Giaûi: dy 0 ≤ t ≤1
= −y y(0) = 1
dt
h flope errE flopeM errM flope4 err4
E
0.20000 31 4.02e-0 57 2.86e-3 129 5.80e-6
0.10000 61 2 112 6.62e-4 254 3.33e-7
0.05000 121 1.92e-0 222 1.59e-4 504 2.00e-8
0.02500 241 2 442 3.90e-5 1004 1.22e-9
0.01250 481 9.39e-0 882 9.67e-6 2004 7.56e-11
0.00625 961 3 1762 2.41e-6 4004 4.70e-12
4.66e-0
3
S ö û d u ï n g 2.31e-0 c u û a M a t l a b :
ha øm
Söû duïng ode45 3
C uù phaùp : 1.15e-0
[t,Y] = 3
ode45(diffep,tn,y0)
[t,Y] = ode45(diffep,[t0 tn],y0)
[t,Y] = ode45(diffep,[t0 tn],y0,options)
[t,Y] = ode45(diffep,[t0 tn],y0,options,arg1,arg2,…)
52. Phöông phaùp
Ru n g e - Ku t t a
Ví d u ï
dy y(0) = 0
= cos( t )
dt
>> rhs = inline(‘cos(t)’,’t’,’y’) ;
>> [t,Y] = ode45(rhs,[0 2*pi], 0) ;
>> plot(t,Y,’o’) ;
53. B a ø i t o a ù n g ia ù t r ò b ie â n :
P h ö ô n g t r ìn h v i p h a â n c a á p 2 :
ÖÙng duïng cho caùc baøi toaùn veà thanh , truyeàn nhieät ,vv…
Daïng : ay’’(x)+by’(x)+cy(x)=f(x) 0<x<1 (7.10)
Ñ ieàu kieän bieân :
a/ y(x=0) = y0 *
y(x= L) = y L *
b/ y’(x=0) = yo' *
y(x= L) = yL *
c/ y(x=0) = y0 *
y’(x=L) = y 'L *
Xaáp xæ (7.10) baèng löôùi ñeàu sai phaân trung taâm∆x o=
:h
y i +1 − y i −1 1
y i’ = + 0(h2) vôùi O(h2) = - h2fi’’’ ( 7 . 11)
2h 6
y i +1 − 2 f i + y i −1 1
yi’’ = + 0(h2) vôùi 0(h2) = - h2fi’’’ (7.12)
h2 12
54. (7.10), (7.11) vaø(7.12) cho ta phöông trình sai phaân
y − 2 y i + y i −1 y − y i −1
a i +1 + b i +1 + cyi = f ( x) (7.13)
h2 2h
(2a+ bh)yi+1+(2ch2 - 4a)yi + (2a - bh)yi-1 = 2h2f(x) (7.14)
i=1 => (2a + bh)y2 + (2ch2 - 4a)y1 + (2a - bh)yo = 2h2f(x)
i=2 => (2a + bh)y3 + (2ch2 - 4a)y2 + (2a - bh)y1 = 2h2f(x)
i=3 => (2a + bh)y4 + (2ch2 - 4a)y3 + (2a - bh)y2 = 2h2f(x)
i=4 => (2a + bh)y5 + (2ch2 - 4a)y4 + (2a - bh)y3 = 2h2f(x)
i=5 => (2a + bh)y6 + (2ch2 - 4a)y5 + (2a - bh)y4 = 2h2f(x)
55. Ñaët :
A=2a + bh
B=2ch2 - 4a
C=2a – bh
Ñöa heä 5 phöông trình treân veà daïng ma traän :
a/ By1 +Ay2 = 2h2f(x)-Cy0*
Cy1+By2+Ay3 = 2h2f(x)
Cy2+By3+Ay4 = 2h2f(x)
Cy3+By4+Ay5 = 2h2f(x)
Cy4+By5 = 2h2f(x)-AyL*
Hay dạng ma trận :
B A 0 0 0 y1 2h 2 f(x) - Cy 0 *
C B A 2
0 0
y2 2h f(x)
0 C B A 0 y3 = 2h 2 f(x)
y4 2h f(x)
0 0 C B A 2
y5 2
0 0 0
C B 2h f(x) - Ay L *
56. y2 = y0
b/ y'1 =
2h
= y' 0 * (Biết) ⇒ y0=y2 -2hy0’*
B A + C 0 0 0 y1 2hCy 0 '* + 2h 2 f(x)
C B 2
A 0 0
y2 2h f(x)
=
(5) ⇒ 0 C B A 0 y3 2h 2 f(x)
0 0 C B A y4 2h f(x)
2
0 y5 2
0 0 C B
2h f(x) - Ay L *
y6 − y4
c/ y'5 =
2h
= y L '* ⇒ y 6 = y 4 + 2hyL '*
B A 0 0 0 y1 2h 2 f(x) - Cy 0 *
C 2
B A 0 0
y2 2h f(x)
0
C B A 0
y3
= 2h 2 f(x)
0 0 C B A y4 2h f(x)
2
0 0 0 A + C B y5 2
2h f(x) - 2hAy L '*
57. • I. P h ö ô n g p h a ù p s o â : C h ia ñ o â i k h o a û n g ,
N e w t o n -R a p h s o n , D a â y c u n g
1. C h i a ñ o â i k h o a û n g (Bisection Method)
(1) : a, b , tol
Matlab code.
(2) : k = 1,2,..
clear all
a+b clc
(3) : xm = a=3;b=4;tol=0.0001
2 for k=1:10
( 4) : f ( x m ) ≠ 0 x=(a+b)/2;
if sign(f(x))==sign(f(a))
(5) : f (a). f ( xm ) < 0 a=x;
else
( 6) : b = x m b=x;
end
(7 ) : a = x m if abs(f(x)>tol)
break
(8) : f ( xm ) ≤ tol end
a+b end
(9) : xm = function gg=f(x)
2 gg=x-x.^(1/3)-2;
(10) : in x
58. 2. Newton-Raphson clear all
clc
(1) : x0 , tol format long
x=10; tol=1e-10; itemax=20; itein=0;
( 2) : k = 1,2,...
while abs(f(x))>tol
f ( x k −1 ) itein=itein+1;
(3) : x k = x k −1 −
f ' ( x k −1 ) if itein>itemax break
end
( 4) : x k − x k −1 < tol Dx=-f(x)/df(x);
(5) : in x sprintf ('itein = %d x= %20.10f f(x) =
%20.10f Dx= %20.10fn',...
itein,x,f(x),Dx);
x=x+Dx;
end
sprintf ('solution %20.10f, f(x)=… %20.10f
n',x, f(x))
%-------------------------------------
function q=f(x)
q=x-x.^1/3-2;
function q=df(x)
q=1-1/3*1/(x.^(2/3));
59. 3. Daây cung (Secant Method):
clear all
(1) : x1 , x2 , tol.
clc
(2) : k = 2, 3, ...
syms x
xk − xk −1
(3) : xk +1 = xk − f ( xk ) format long
f ( xk ) − f ( xk −1 )
x1=3;
(4) : f ( xk ) f ( xk −1 ) < 0 x2=4;
(5) : xk −1 = xk +1 tol=1e-6
(6) : xk = xk +1 while abs(f(x2))>tol
(7) : f ( xk+1 ) ≤ tol xk=x2-f(x2)*(x2-x1)/(f(x2)-f(x1));
(8) : I n x if f(x1)*f(x2)<0
x2=xk;
else
x1=xk;
end
end
nghiem=x2
%---------------------------------------
function g=f(x)
g=x-x^(1/3)-2;
60. K e á t Qu û a v a ø s o s a ù n h
1. C h i a ñ o â i 1. D a â y c u n g
khoa ûng
4 . Ñ o à t h ò f ( x ) =x -
x ^ 1/3 - 2
1. N e w t o n -
Ra phs on
61. 2. Phöông phaùp giaûi laëp heä phöông trình
tuyeán tính
a. Conjugate gradient method (CG):
x ( 0 ) = 0, r ( 0 ) = b − Ax ( 0 ) , p ( 0 ) = r ( 0 ) clear all
clc
for k = 1,2,3,….. a=[2 4 7; 4 5 6; 7 6 1];
α (k )
=
(r ) (r )
( k −1 ) T ( k −1 )
Kích thöùôc
b=[-1 2 5]';
x=[0 0 0]';
(p ) A (p )
( k −1 ) T ( k −1 )
böôùc r=b-a*x;
x ( k ) = x ( k − 1 ) + α ( k ) p ( k −1 ) Nghieäm xaáp p=r;
xi for i=1:10
r ( k ) = r ( k −1 ) − α ( k ) A p ( k −1 ) Thaëng dö
alpha=r'*r/(p'*a*p);
β (k )
=
(r ) (r )(k ) T (k )
Caûi tieán
x=x+alpha*p;
(r ) (r )
( k −1 ) T ( k −1 ) r1=r;
r1=r1-alpha*a*p;
Höôùng tìm beta=r1'*r1/(r'*r);
p ( k ) = r ( k ) + β ( k ) p ( k −1 )
nghieäm p=r1+beta*p ;
r=r1;
end
end
r
62. b. Preconditioned Conjugate gradient method(PCG):
x ( 0 ) = 0, r ( 0 ) = b − Ax ( 0 ) , h ( 0 ) = Cr ( 0 ) , p ( 0 ) = h ( 0 ) clear all
for k = 1,2,3,….. clc
a=[2 4 7; 4 5 6; 7 6 1];
α (k )
=
(r ) (p )
( k −1) T ( k −1) b=[-1 2 5]';
x=[0 0 0]';
(p ) A (p )
( k −1) T ( k −1)
r=b-a*x;
x ( k ) = x ( k −1 ) + α ( k ) p ( k −1 ) h=0.5*r;
p=h;
r ( k ) = r ( k − 1 ) − α ( k ) A p ( k −1 ) for i=1:10
alpha = r'*p/(p'*a*p);
h ( k ) = Cr ( k ) Chænh lyù x = x + alpha*p;
β (k )
=
(r ) (h )
(k ) T (k )
r1 = r;
(r ) (h )
( k −1 ) T ( k −1) r1= r1-alpha*a*p;
h1 = 0.5*r1;
p ( k ) = h ( k ) + β ( k ) p ( k −1) beta = r1'*h1/(r'*h);
p=h1+beta*p;
end
r=r1;
h=h1;
end
r1
63. • B . H e ä p h ö ô n g t r ìn h p h i t u y e á n :
N e w t o n -R a p h s o n
G ia û i t h u a ä t N e w t o n . x (k)
a) Choïn nghieäm ñeà nghò
vaø soá gia nghieäm ôû böôùc(k)
∆x
A x= b , A(n, n) laëp thöù k ñeå:
t haëng dö :
x ( k +1) = x ( k ) + ∆x ( k ) → f ( x ( k+1) ) = 0
f = A x− b
Da ï n g t o å n g q u a ù t b) Khai trieån Taylor haøm f:
f1 ( x1 , x 2 ,....., x n ) 0 ( ) ( )
f x ( k +1) = f x ( k ) + ∆x ( k ) f ' ( x ( k ) ) + 0 ∆x ( k )
2
f 2 ( x1 , x 2 ,....., x n ) 0
∂f1 ∂f1 ∂f1
. ∂x . . .
. ∂x 2 ∂x n
f ( x) = = 1
. . ∂f2 ∂f2
. . .
∂f2
∂x1 ∂x 2 ∂x n
. .
f ' ( x ) ≡ J( x ) = . . . . . .
f ( x , x ,....., x ) 0
n 1 2 n . . . . . .
. . . . . .
∂f ∂fn ∂fn
n . . .
∂x1
∂x 2 ∂x n
b) Jacobian haøm f boû ñi soá haïng
baäc1)cao
fx(( k+
) = f ( x ) + J( x
( k) ( k) ( k)
) ∆x
64. c) Tìm ∆x (k) töø:
f ( x ( k+1) ) = 0 ⇔ J( x ( k) )∆x ( k) = − f ( x ( k) ) x1 + x 2 = 2
x1 x3 + x 2 x 4 = 0
a) Baûy böôùc cho giaûi thuaät: 2
x1 x3 + x 2 x 4 =
2 2
* Ñeà nghò nghieäm ban ñaàu. 3
* Tính giaù trò haøm f. x1 x3 + x 2 x 4 = 0
3 3
f
* Kieåm tra chuaån ñuû beù thì
döøng. Matlab program
* Tính giaù trò Jacobian J. clear all
J .∆x = − f
* Giaûi clc
x ← x + ∆x format long
* Caäp nhaät nghieäm x=zeros(4,1);
* Trôû veà böôùc 2. x(1)=0.7;x(2)=0.5;x(3)=-0.01;
x(4)=0.1;
tol=1e-10; itemax=100;
itein=0;
V í d u ï: f=fnorm(x);
while norm(f)>tol
Giaûi heä phöông trình phi tuyeán itein=itein+1;
sau:
65. if itein>itemax break
end
jac=jacobian(x);
dx=-jacf;
x=x+dx;
f=fnorm(x);
sprintf ('itein = %d x1= %15.10f x2= %15.10f x3= %15.10f…
x4= %15.10f residual= %15.10fn',itein,x,norm(f))
end
sprintf ('solution %20.10f, f(x)= %20.10fn',x, f(x))
%--------------------------------------------------------------------------
function f=fnorm(x)
f=zeros(4,1);
f(1)=x(1)+x(2)-2;
f(2)=x(1).*x(3)+x(2).*x(4);
f(3)=x(1).*x(3).^2+x(2).*x(4).^2-2/3;
f(4)=x(1).*x(3).^3+x(2).*x(4).^3;
%-----------------
function jac=jacobian(x)
jac=zeros(4,4);
jac(1,1)=1;jac(1,2)=1;jac(1,3)=0;jac(1,4)=0;jac(2,1)=x(3);jac(2,2)=x(4);
jac(2,3)=x(1); jac(2,4)=x(2); jac(3,1)=x(3).^2;jac(3,2)=x(4).^2;
jac(3,3)=2*x(1).*x(3); jac(3,4)=2*x(2).*x(4);jac(4,1)=x(3).^3;
jac(4,2)=x(4).^3;jac(4,3)=3*x(1).*x(3).^2;jac(4,4)=3*x(2).*x(4).^2;
66. Ke á t qua û.
ans =
itein = 33 x1=1.0000000000 x2=1.0000000000 x3=0.5773502692
x4= -0.5773502692 residual=0.0000000000
67. • I. D u ø n g p h ö ô n g p h a ù p t ín h s o á :
• 1. L u a ä t t u y e á n t í n h :
m m
S xx = ∑ xi xi = 2.08 S x = ∑ xi = 3.2
i =1 i =1
m m
S xy = ∑ xi y i = 4.832 S y = ∑ y i = 7.74
i =1 i =1
α=
1
( S x S y − mS xy ) = 1.8857
d
β = ( S x S xy − S xx S y ) = 0.2843
1
d
d = S x2 − mS xx = −2.24
duï
moøn beà maët segment theo thôøi gian cho baûng döõ lieäu sau: vôùi m = 6.
x 0.1 0.4 0.5 0.6 0.7 0.9
y 0.61 0.92 0.99 1.52 1.67 2.03
h ö ô n g t r ìn h c a à n t ìm: = 1.8857x+0.2843
y
68. • 2 . L ua ä t ña thö ùc b a ä c 2 :
f ( x) = a 0 + a1 x + a 2 x 2 , m = 6, k = 0,1,2, i = 1,2,...,6
m m
m
a=zeros(3,3);
m ∑x i ∑x 2
i ∑ yi
b=zeros(3,1);
m i =1 i =1
a 0 m=1 i
x
m m a(1,1)=6;
xi3 a1 = ∑ xi y i
∑ i ∑ xi2 ∑ a(1,2)=s1;
a 2 m
i =1 i =1 i =1 i =1
m a(1,3)=s2;
m m
∑ xi2
i =1
∑ xi3
i =1
∑ xi4
i =1
∑ xi y i
i =1
2
a(2,1)=s1;
P h ö ô n g t r ìn h c a à n t ìm: a(2,2)=s2;
a(2,3)=s3;
y=0.485 + 0.7845x + 1.1152x2 a(3,1)=s2;
a(3,2)=s3;
Matlab program
a(3,3)=s4;
Clear all
clc b(1,1)=s5;
x=[0.1 0.4 0.5 0.6 0.7 0.9]; b(2,1)=s6;
y=[0.61 0.92 0.99 1.52 1.67 2.03]; b(3,1)=s7;
s1=0;s2=0;s3=0;s4=0;s5=0;s6=0;s7=0; c=LU(a,b);
for i=1:6 % goïi haøm LU ñaõ thöïc hieän ôû
s1=s1+x(i);s2=s2+(x(i))^2; %chöông tröôùc ñeå giaûi nghieäm
s3=s3+(x(i))^3;s4=s4+(x(i))^4; %giaûi baèng Matlab:
s5=s5+y(i);s6=s6+x(i)*y(i);
c0=0.485; c1=0.7845; c2=1.1152;
s7=s7+x(i)^2*y(i);
end
69. y=0.485 + 0.7845x + 1.1152x2
• 3 . L u a ä t p h i tu ye á n :
y = c1e c2 x → ln y = αx + β
y = c1 x c2 → ln y = α ln x + β
y = c1 xe c2 x → ln( y / x ) = αx + β
70. i s u y t h e o lu a ä t h a ø m lu y õ t h ö ø a
Matlab program suv=suv+xx(i)*yy(i);
clear all end
clc d=su^2-6*suu;
x=[0.1 0.4 0.5 0.6 0.7 0.9]; c2=(su*sv-6*suv)/d
y=[0.61 0.92 0.99 1.52 1.67 2.03]; b=(su*suv-suu*sv)/d
%============================ c1=exp(b)
% Baûng soá lieäu ño ñaïc
%============================ y = 1.8311 x0.5227
xx=[];
yy=[];
for i=1:6
xx=[xx log(x(i))];
yy=[yy log(y(i))];
end
su=0;
suu=0;
sv=0;
suv=0;
for i=1:6
su=su+xx(i);
suu=suu+(xx(i)^2);
sv=sv+yy(i);
71. N o ä i s u y t h e o lu a ä t t o å h ô ïp
f ( x ) = c1 f1 ( x ) + c2 f2 ( x ) + .... + cn fn ( x )
n
f ( x) = ∑ ci f i ( x) function b=f2(x)
i =1 b=x;
P h ö ô n g t r ìn h c a à n t ìm: function a=f1(x)
0.0365 a=1/x;
y= + 2.2177 x
x
0.0365
Matlab program y= + 2.2177 x
x
clear all
clc
x=[0.1 0.4 0.5 0.6 0.7 0.9];
y=[0.61 0.92 0.99 1.52 1.67 2.03];
A=zeros(6,2);
B=zeros(6,1);
for i=1:6
A(i,1)=f1(x(i));
A(i,2)=f2(x(i));
B(i,1)=y(i);
end
c=(A'*A)(A'*B)
72. u y t h e o lu a ä t ñ a t h ö ù c d ö ïa t r e â n k h a i t r ie å n T a y lo r
n −1 α ρ max
u a ä t ñ a t h ö ùyc= a n x + a n −1 x + .... + a1 x + a 0
n
1.0 0.098158
1.5 0.075798
y1 = a n x1n + a n −1 x1n −1 + .... + a1 x1 + a 0
1.8 0.066604
y 2 = a n x 2 + a n −1 x 2 −1 + .... + a1 x 2 + a 0
n n
2.0 0.049851
3.0 0.046624
. 3.5 0.041890
. 4.5 0.034597
α
ρ max
y n = a n x + a n −1 x n −1 + .... + a1 x n + a 0
n
n
n
a ) L u a ä t P a r a b ocl x 2 + c2 x + c3
1
x1n x1n −1 ... x1 1 a n y1
n c1
x2 x2n −1
... x 2 1 a n −1 y 2 b ) L u a ä t t o å h ô ï p t u y e á n t í n h 2 x
+c
⇒ . . . . . . = .
x
. . . . . . .
x n
n x n −1 ... x n 1 a 0 y n
n
Ví d uï
Baûng döõ lieäu ño ñaïc :
74. • II. D u ø n g t íc h p h a â n s o á :
f(x)
• 1. L u a ä t h ì n h t h a n g Eh
y
( T r a p z o id a l R u le ) :
xi
h
∫
xi −1
f ( x)dx ≈ i ( f ( xi −1 ) + f ( xi ))
2
h f ( x0 ) + 2 f ( x1 ) + 2 f ( x 2 ) + ..... x
I trap = +E
2 + 2 f ( x n −1 ) + f ( x n )
x0 = a x1 x2 …. Xn-1 x =b
n
b−a
h= , x i = a + i * h, x 0 = a , x n = b
N
h
I trap = ( f 0 + 2 f1 + 2 f 2 + ..... + 2 f n−1 + f n ) + E
2
1 (b − a) 3 N
xi −1 + xi +1
E≈−
12 N 3
∑f
i =1
''
( xi ), xi =
2
Ví d uï
2
2
x 2
2
Tính tích phân: S = ∫ f ( x)dx = ∫ π 1 + dx
2
0 0
75. Ke á t quûa :
Matlab program
N h S h
E h
2 1. 12.7627 -1.0341
clear all 4 0.5 11.9895 -0.2609
clc 8 0.25 11.7940 -0.0654
N=16; 16 0.125 11.7449 -0.0163
32 0.0625 11.7326 -0.0040
a=0; 64 0.03125 11.7296 -0.0010
b=2;
h=(b-a)/N; • 2 . L u a ä t S i m p s o n 1/3
S=0; ( S im p s o n R u le ) :
for i=0:N b
h
x=a+i*h; S = ∫ f ( x )dx = [ f (a) + 4 f ( x ) + f (b )] + E
a
3
if i==0 | i==N b−a a+b
c=1; x 0 = a, x 2 = b, h = , x=
2 2
else b
h
S = ∫ f ( x )dx = [ f 0 + 4 f 1 + f 2 ] + E
c=2; a
3
end h N −1 N −2
S simp = f (a ) + 4∑ f (a + ih) + 2 ∑ f (a + ih) + f (b) + E
S=S+c*pi*(1+(x/2).^2).^2; 3 i =1 i =2
end
h f ( x 0 ) + 4 f ( x1 ) + 2 f ( x 2 ) + 4 f ( x3 ) +
S=h*S/2 S simp = +E
3 ..... + 4 f ( x n −1 ) + f ( x n )
N h 5 '''' N
xi −1 + xi +1
E≈− f , f ''''
= ∑ f '''' ( x i ) / N , xi =
2 90 i =1 2
76. Matlab program Ke á t quûa :
clear all N h Sh Eh
clc
2 1. 11.7809 -0.0523
N=16; 4 0.5 11.7318 -0.0032
a=0; 8 0.25 11.7288 -0.0002
b=2; 16 0.125 11.7286 -0.0000
32 0.0625 11.7286 -0.0000
h=(b-a)/N; 64 0.03125 11.7286 -0.0000
S=0;
for i=0:N G ia ù t r ò t íc h
x=a+i*h; p h a 1.32
ân
5
if i==0 | i==N 1.32
c=1;
1.31
5
elseif i==fix(i/2)*2+1 1.31
c=4; 1.30
Luaät Simpson
else 5
Chính
c=2; 1.3
xaùc
end 1.29
5 Luaät hình thang
S=S+c*pi*(1+(x/2).^2).^2; 1.29
end 0 10 20 30 40 50
Soá phaân
S=h*S/3 ñoaïn
78. . T íc h p h a â n G a u s s ( G a u s s q u a d r a t u r e ) :
1
I = ∫ f ( x) dx ≈ w1 f ( x1 ) + w2 f ( x 2 ) + + wn f ( x n )
−1
1
V í d u ï: I = ∫ (0.2 + 25 x − 200 x 2 + 675 x 3 − 900 x 4 + 400 x 5 ) dx
−1
Matlab program clear all
clc
format long
x1=-0.861136;
x2=-0.339981;
x3=0.339981;
x4=0.861136;
Tính vôùi 4 ñieåm % ------troïng soá------------------------------------
Gauss: w1=0.347855;
w2=0.652145;
w3=0.652145;
w4=0.347855;
f1=w1*gauss1(x1);
f2=w2*gauss1(x2);
f3=w3*gauss1(x3);
f4=w4*gauss1(x4);
m=f1+f2+f3+f4
%--------------------------------------------------------------------
function ff=gauss1(x)
ff=400*x^5-900*x^4+675*x^3-200*x^2+25*x+0.2;
keát quaû:
I=-4.929329328775451e+002
79. f u n c t io n
[ K e , f e ] =b e a m 2 e ( e x , e y , e p , e q ) ;
M A TL A B - F E M % -------------------------------------------------
--------------------
% IN P U T :
a ø i ta ä p 3 .4 % e x = [x1 x2 ]
E d =e x t r a c t ( %d o f , a ) ; e y = [ y 1 y 2 ]
E e le m e n t
r a ll; c lc ; c lo s e a ll [ e s 1, e d i 1, e c n1] d e e c o o2 d (i n a t e s: ) , E y ( 1, : ) , e p , E d ( 1, : ) , E q ( 1,
i o =b a m r s E x ( 1,
o o ff %
[ e s 2 , e d i 2 , e c i 2 ] =b e a m 2 s ( E x ( 2 , : ) , E y ( 2 , : ) , e p , E d ( 2 , : ) , E q
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - % - - - - - - - - - - - - - - -%- - - - - - - - - - - e-p - -= -[-E - - - - I ]- - - -e - - -m - - - -t - - - - -
-- - - - --- - - - - - A - - le -- e n -
o f =[ 1 1 2 3 4 5 6 ; p r o p e r t ie s
2 4 5 6 7 8 9 ]; % E : Yo u n g ' s
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -m o-d-u l u s
--- - -
e ros (9 ); f =z e r o s ( 9 , 1) ; f ( 8 ) =- 8 8 . 9 /2 ; % A: C ro s s
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -s - - - - t -o n a r e a
- e c -i
. 9 ; t w =0 . 3 15 ; b f =6 . 0 15 ; t f =0 . 5 2 5 ; % I: M o m e n t o f
* t f * b f +t w * ( h - 2 * t f ) ; in e r t ia
5 e - 2 ; E =2 . 1e 8 ; L =6 . 1; %
E A I] ; % e q = [ q x q y ] d is t r ib u t e d
=[ 0 L; lo a d s , lo c a l d ir e c t io n s
L 3 * L /2 ] ; %
z e ro s ( 2 ,2 ) ; % O U T P U T : K e : e le m e n t s t if f n e s s
=z e r o s ( 2 , 2 ) ; m a t r ix ( 6 x 6 )
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -%- - - - - -
- f e : e le m e n t lo a d
=1: 2 v e c t o r ( 6 x 1)
%, - - - - - - - - - - -m - - - - - - - x-(-i-,- - - - - y-( -i- - ) , e-p -)-;- - - - - - -% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
e f e ] =b e a -- 2 e ( E - :) , E - , : --- - -
,-f-]-=a- s -s - - - ( E d o f ( i , : ) , K , K e , f , f e ) ;
-- - - e m ------------
b c =[ 1 0 ; 2 0 ; 4 0 ; 5 0 ; 7 0 ; 9 0 ] ; b =[ e x ( 2 ) - e x ( 1) ; e y ( 2 ) - e y ( 1) ] ;
a =s o l v e q ( K , f , b c ) ; L =s q r t ( b ' * b ) ; n =b /L ;
% -------------------------------------------------
------------