Code chương trình Runge – Kutta Matlab...11 II... TIn tại vô sL nghiMm thoả mNn phương tr8nh trên.. MOi nghiMm phP thuộc vàomột hay nhiQu hRng sL tuS T nào đ:.. Đ; xUc đVnh một nghiMm cP
Trang 1ĐẠI HỌC QUỐC GIA TP.HCM
TRƯỜNG ĐẠI HỌC BÁCH KHOA
BÁO CÁO BÀI TẬP LỚN PHƯƠNG PHÁP SỐ
CÁN BỘ GIẢNG DẠY: PGS.TS Vũ Công Hòa
NHÓM: 03
LỚP: L07
Thành phố Hồ Chí Minh - 2021
Trang 2DANH SÁCH NHÓM 03 ST
Khí
Khí
Trang 3MC LC
I BI 1 1
1 Cơ s l thuy"t 1
1.1 Bi ton Cauchy 1
1.2 Phương php Runge – Kutta 2
1.2.1 Phương php Runge – Kutta bc 2 2
1.2.2 Phương php Runge – Kutta bc 4 5
2 $p d'ng 5
2.1 Bi ton 1 5
2.1.1 Giải tay 6
2.1.2 Kết quả chương trình matlab 7
2.2 Bi ton 2 8
2.2.1 Giải tay 8
2.2.2 Kết quả chương trình Matlab 10
2.3 Code chương trình Runge – Kutta Matlab 11
II BI 2 12
1 Cơ s l thuy"t 12
2 $p d'ng 12
2.1 Bi giải tay 13
2.2 Giải ton b)ng ph*n m+m ABAQUS 16
2.3 Code ch0y chương trình ph*n m+m ABAQUS 17
III TI LI(U THAM KH+O 22
Trang 4I BI 1
1 Cơ s l thuy"t
1.1 Bi ton Cauchy
Một phương tr8nh vi phân cấp 1 c: th; vi<t dư>i dạng giải đư@c y
= f(x, y) mà ta c: th; t8m đư@c hàm y tG đạo hàm cHa n: TIn tại vô
sL nghiMm thoả mNn phương tr8nh trên MOi nghiMm phP thuộc vàomột hay nhiQu hRng sL tuS T nào đ: Đ; xUc đVnh một nghiMm cP th;cHa phương tr8nh ta phải c: giU trV ban đXu đư@c cho trư>c cHa y là
y0 tại giU trV đXu x Bài toUn Cauchy c: dạng như sau:0
Ngư\i ta đN ch]ng minh ra bài toUn trên c: 1 nghiMm duy nhấtn<u f thoả mNn điQu kiMn Lipschitz:
v>i L là một hRng sL dương
Ngư\i ta c`ng ch]ng minh rRng n<u f’y là liên tPc và bV chbn th8
f thoả mNn điQu kiMn Lipschitz
Một cUch tcng quUt hơn, ngư\i ta đVnh nghea hM phương tr8nhbậc 1:
Trang 5Đối v=i phương tr4nh vi phân bâ 8c n, nghiê 8m sC phD thuô 8c vào n hGng số tuH I.
ĐJ t4m đưLc mô 8t nghiê 8m cD thJ, ta ph2i cM n điNu kiê 8n đPu BGng cQch đưa vN phươngtr4nh vi phân cRp 1 ta cM thJ gi2i đưLc phương tr4nh vi phân cRp n
1.2 Phương php Runge – Kutta
1.2.1 Phương php Runge – Kutta bc 2
Xgt bài toUn Cauchy:
v>i y = y(t) là hàm cXn t8m, khả vi trên đoạn [a, b], y là giU trV ban0
đXu cho trư>c cHa y(t) tại t = a
Đ; t8m nghiMm gXn đúng cHa bài toUn (1), ta chia đoạn [a, b]thành n đoạn bRng nhau:
Khi đ: cUc đi;m nút t = a; t = t + kh; k = 0, 1, 2,… n; t = b.0 k 0 n
Giả sn y(t) là nghiMm duy nhất cHa bài toUn (1) c: đạo hàm đ<ncấp 2 liên tPc trên đoạn [a, b]
Ta xgt khai tri;n Taylor cHa nghiMm đúng y(t):
Thay x = x = x +h, ta c::i+1 i
Trong đ::
Thay vào công th]c Euler cải ti<n ta c::
2
Trang 6Đ; trUnh tính trqc ti<p f’t(t ,yk k) và f’y(t ,yk k), Runge – Kutta đN làmnhư sau:
Đbt:
Trong đ::
Và chọn r , r sao cho khai tri;n luỹ thGa cHa h cHa y1 2 k+1 xUc đVnh bti(4) trung nhau đ<n 3 sL hạng đXu cHa v< phải công th]c (3)
Dung công th]c Tylor cHa hàm hai bi<n, ta c::
TG đây suy ra:
= y + rk 1hy’k + r2hy’k + αr2h f’ (t2
t k, yk) + βr2h2y’kf’y(t , yk k) +O(h3) (6)
So sUnh cUc hM sL luỹ thGa cHa cHa h trong (3) và (6) ta c::
r1 + r = 12
Trang 7Đây là một hM thLng 3 phương tr8nh 4 zn nên là một hM vô đVnh.
Ta xgt một vài họ nghiMm đơn giản:
Khi đ: (4) và (5) c: dạng:
đN bi<t:
Khi đ: (4) và (5) c: dạng:
đN bi<t:
Khi thành lập cUc công th]c (4) và (5) trên đây ta bỏ qua sL
sai sL tại đi;m t thỏa mNn: |y -y(t )| ≤ Mh , trong đ: M là hRng sLk k k 2
dương không phP thuộc h
1.2.2 Phương php Runge – Kutta bc 4
Hoàn toàn tương tq phương phUp Runge - Kutta, n<u trong khaitri;n Taylor cHa y(t ) tại xi ta bỏ qua sL hạng O(h ) th8 sẽ nhận đư@ck+1 4
công th]c Runge-Kutta c: độ chính xUc cấp ba, nghea là |y -y(t )| ≤k k
đN bi<t:
4
Trang 8N<u bỏ qua sL hạng O(h ) th8 ta nhận đư@c công th]c Runge-5
2.1.1 Giải tay
Theo công th]c Runge – Kutta bậc 2 ta c::
V>i
Trang 9k xk yk y(xk)
0
0.5000000
0.5000000
1.4256394
0.0193894
2.6408591
0.0432028
4.0091555
0.0692141
5.3054720
0.0905672
1.71
%
2.1.2 Kết quả chương trình matlab
6
Trang 102.2 Bi ton 2
Trang 11Sn dPng phương phUp Runge – Kutta bậc 4 đ; xấp xỉ nghiMm cHabài toUn Cauchy ĐUnh giU sai sL.
V>i n=4 Tại những đi;m nút chia so sUnh giU trV gXn đung v>igiU trV chính xUc, bi<t nghiMm chính xUc cHa bài toUn là �(�) = (� +1)2 - 0,5� �
2.2.1 Giải tay
Theo công th]c Runge – Kutta bậc 4 :
V>i và Ta c::
Trang 122.2.2 Kết quả chương trình Matlab
00
0.5000000
2.6408591
4.0091555
2.3365×10
-3
0.058
%
Trang 132.3 Code chương trình Runge – Kutta Matlab
10
Trang 14Bậc 2
clear; clc
%Nh p các giá tr ậ ị t0=input('Nhap gia tri dau x0 = ');
tn=input('Nhap gia tri cuoi xn = ');
y0=input('Nhap gia tri dau y0 = ');
h=input('Nhap buoc nhay h = ');
t0=input('Nhap gia tri dau x0 = ');
tn=input('Nhap gia tri cuoi xn = ');
y0=input('Nhap gia tri dau y0 = ');
h=input('Nhap buoc nhay h = ');
Trang 15II BI 2
1 Cơ s l thuy"t
Sử dDng kiến thức đã đưLc học trong chương 10: PhPn tử dPm trong không gian
đJ gi2i quyết bài toQn
cắt tuy T (h8nh chữ nhật, h8nh vuông, W shape, S shape, C shape …)sao cho đảm bảo điQu kiMn bQn
Lấy ti<t diMn h8nh chữ nhật v>i a=500mm, b=300mm,
Trang 16n: sL sinh viên cHa nh:m
2.1 Bi giải tay
Phần tử 1 và 2:
Phần tử 3: l=2L
Ma trận tổng độ cứng của phần tử:
Trang 174 2
3 3
4 4
2.54 10
1.009 10
5.045 10
rad rad rad
2.2 Giải ton b)ng ph*n m+m ABAQUS
a) Reaction force “RF” (Phản lực liên k"t):
14
Trang 18b) Stress “S” (Ứng suất):
c) Ubiety “U” (Chuyển vị):
Trang 19-*-# Do not delete the following import lines
from abaqus import *
from abaqusConstants import *
Trang 20s.ParallelConstraint(entity1=g[3], entity2=g[4], addUndoState=False)
s.ObliqueDimension(vertex1=v[0], vertex2=v[1], textPoint=(-1638.67651367188, -108.192199707031), value=1000.0)
s.ObliqueDimension(vertex1=v[1], vertex2=v[2], textPoint=(-740.406066894531, -112.228088378906), value=1000.0)
s.ObliqueDimension(vertex1=v[2], vertex2=v[3], textPoint=(121.448303222656, -116.263732910156), value=2000.0)
p = mdb.models['Model-1'].Part(name='dam', dimensionality=TWO_D_PLANAR, type=DEFORMABLE_BODY)
Trang 21mdb.models['Model-1'].Material(name='Material-1')
mdb.models['Model-1'].materials['Material-1'].Density(table=((7.8e-09, ), ))
mdb.models['Model-1'].materials['Material-1'].Elastic(table=((200000.0, 0.25), ))
mdb.models['Model-1'].RectangularProfile(name='Profile-1', a=500.0, b=300.0) mdb.models['Model-1'].BeamSection(name='Section-1',
integration=DURING_ANALYSIS, poissonRatio=0.0, profile='Profile-1',
18
Trang 22region=region, cf2=-12528.3, distributionType=UNIFORM, field='',
Trang 23mdb.Job(name='dam', model='Model-1', description='', type=ANALYSIS, atTime=None, waitMinutes=0, waitHours=0, queue=None, memory=90, memoryUnits=PERCENTAGE, getMemoryFromAnalysis=True,
explicitPrecision=SINGLE, nodalOutputPrecision=SINGLE, echoPrint=OFF, modelPrint=OFF, contactPrint=OFF, historyPrint=OFF, userSubroutine='', scratch='', resultsFormat=ODB)
Trang 24III TI LI(U THAM KH+O
1. Runge-Kutta 2nd order method to solve Differential equations,
5. Fouth orther Runge – Kutta,
https://lpsa.swarthmore.edu/NumInt/NumIntFourth.html