Tải bản đầy đủ (.doc) (17 trang)

giải phương trình vi phân chuyển động của cơ hệ

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (152.8 KB, 17 trang )

Phạm Tuấn Long

Đồ án tin học
Lời nói đầu

Trong vài chục năm trở lại đây, với sự ra đời của máy tính, Khoa học kỹ
thuật đã có những bớc phát triển mạnh mẽ. Nhờ có máy tính, con ngời có thể
giải quyết các bài toán phức tạp với khối lợng tính toán lớn mà trớc đây không
thể thực hiện đợc. Trong ngành cơ khí nói chung và cơ học nói riêng, máy tính
cũng đóng vai trò rất quan trọng. Ta có thể sử dụng máy tính để khảo sát các hệ
cơ học có cấu trúc phức tạp với các phép tính có khi lên tới hàng nghìn,hàng vạn.
Chính vì thế, đồ án tin học trong cơ khí là môn học quan trọng và
cần thiết đối với sinh viên ngành cơ tin kỹ thuật, nó giúp cho sinh viên làm quen
với công việc lập trình bằng máy tính để tính toán thiết kế trong cơ khí và dễ
dàng tiếp cận công việc khi ra trờng.
Đề tài của em là giải phơng trình vi phân chuyển động của cơ hệ gồm các
phần:
Phần I: Giới thiệu về hệ phơng trình vi phân cấp một và hệ phơng trình vi phân
cấp cao áp dụng cho các bài toán cơ học.
Phần II: Mô tả về cấu tạo của con lắc eliptic và thiết lập phơng trình vi phân
chuyển động của con lắc.
Phần III: Là phần viết chơng trình để giải quyết bài toán về hệ phơng trình vi
phân cấp một và cấp hai. Chơng trình này gồm có 2 module
Molule1: Giải hệ phơng trình vi phân cấp 1 bằng phơng pháp RUNGE_KUTTA
Module2: Giải hệ phơng trình vi phân cấp 2 và áp dụng cho cơ hệ con lắc
ELIPTIC.
Mục đích của đề tài nhằm khảo sát các chuyển động của 1 cơ hệ nào đó về vị
trí, vận tốcQua đó vẽ đồ thị mô tả sự dao động của cơ hệ và đa ra nhận xét.
Cuối cùng, em xin gửi lời cảm ơn tới thầy đinh văn phong ngời đã tận
tình hớng dẫn và cho những ý kiến quí báu giúp em hoàn thành đồ án này.
Hà Nội ngày 27/10/2002


Sinh viên
Phạm Tuấn Long

1


Phạm Tuấn Long

Đồ án tin học
Phần thuyết minh

I/ Giải gần đúng hệ phơng trình vi phân thờng bằng phơng pháp
RUNGE_KUTTA
Xét hệ gồm n phơng trình vi phân cấp 1
y1= f1(x,y1,y2,,yn)
y2= f2(x,y1,y2,,yn)
(1)

yn= fn(x,y1,y2,,yn)
Với y1, y2,, yn đều là các hàm số của x: yi=yi(x)
i =1,2,.,n
Ta có thể viết gọn lại nh sau:
yi= fi(x,y1,y2,,yn)
Với các điều kiện đầu:
yi(x0)=yi0
i =1,2,,n
Ta có thể viết dới dạng ma trận:
y= f(x,y)
Với các điều kiện đầu:
y(x0) = y0

Trong đó:
y = [y1,y2,,yn]T
y= [y1, y2,., yn]T
f = [f1, f2,., fn]T
Để giải hệ trên ta có nhiều phơng pháp tuy nhiên ở đây ta sử dụng phơng
pháp RUNGE_KUTTA
Biểu thức hồi quy cho phơng pháp RUNGE_KUTTA
r điểm đợc viết nh sau:
zi+1 = z1 + h(pr1k1 + pr2k2 +.+ prrkr )
Với
k1 = f(xi,zi)
k2 = f(xi + 2h, zi + h21k1)

kr = f[xi + r h, zi + h(r1k1 + r2k2 + + r,r-1kr-1)]
Trong đó prm, m = 1,2..,r và m, mj, m = 2,3,..,r và j = 1,2,., r-1 là
các hằng số đợc xác định tuỳ theo từng phơng pháp.
Phơng pháp RUNGE_KUTTA là phơng pháp một nút vì để tính giá trị của
nút sau chỉ cần tính giá trị của nút trớc đó.
Phơng pháp hay dùng nhất là phơng pháp một nút 4 điểm với độ chính xác cao
vì quá trình tính toán tơng đối đơn giản.
Sơ đồ của phơng pháp RUNGE_KUTTA một nút 4 điểm đợc viết nh sau:
yi+1= yi + h(k1+ 2k2 + 2k3 + k4)/6
Với
k1= f(xi,yi)
2


Phạm Tuấn Long

Đồ án tin học

k2= f(xi+h/2,yi+hk1/2)
k3= f(xi+h/2,yi+hk2/2)
k4= f(xi+h,yi+hk3)

Trong các vấn đề kỹ thuật ta còn gặp bài toán ở dạng phơng trình vi phân cấp
cao:
y(n)= f(x,y,y,y,.,y(n-1))
(2a)
với các điều kiện đầu:
y(i)(x0) = yi0
i = 0,1,2,.,(n-1) (2b)
(i)
Trong đó ta ký hiệu y là đạo hàm cấp i của y hàm số y = y(x)
Dễ dàng chuyển hệ (1) sang hệ 2 bằng cách đa ra:
y1= y, y2= y, y3= y,..,yn= y(n-1)
Do đó ta có hệ phơng trình gồm n phơng trình vi phân cấp 1:
y1 = y2
y2 = y3
..
yn-1 = yn
yn = f(x,y1,y2,..,yn)
Với các điều kiện đầu:
y1(x0) = y0, y2(x0) = y10,,yn(x0)=yn-1,0
Sau đó ta áp dụng phơng pháp RUNGE_KUTTA đối với hệ phơng trình vi phân
cấp 1 để giải phơng trình trên.
II/ Phơng trình vi phân chuyển động của con lắc eliptic và cách giải
bằng phơng pháp RUNGE_KUTTA
Con lắc eliptic là một cơ hệ gồm một lò xo có độ cứng c nối với vật có khối
lợng m1. Vật có khối lợng m1 đợc nối với một chất điểm có khối lợng m2 không
đáng kể thông qua thanh dẫn có chiều dài l.


y
m1

c

Động năng của con lắc có dạng:
T = T1 + T2
Trong đó:
T1: Động năng của vật có khối lợng m1
T2: Động năng của con lắc khối lợng m2
T1 =

1
1
.
m1v12 = m1 y
2
2
3

l
m2

2


Phạm Tuấn Long

Đồ án tin học

1
1
m2v22= m2( x.
2
2

T2 =

2
1

.

+y

.

2
1

)

.

x1 = lcos() x 1 = -lsin()
.
.
.
y1 = y + lsin() y 1 = y + lcos()
.


(x

1

2

.

+y

1

2

.

.

.

.

. 2

= l2 . 2 + y
1
.
(m1 + m2) y
2


.

+ 2 y lcos() .

1
.
.
.
m2 (l2 2 + 2 y lcos() )
2
1
Thế năng của cơ hệ: = -m2glcos() + cy2
2



d T T
=
Theo định lý LAGRANGE II ta có:
. -
qi
dt
qi
qi

T=

. 2


) = l2sin2() 2 + y 2 + 2 y lcos() + l2cos2()

2


T
.
y


+

i= 1,,n



.
.
= (m1 + m2) y + m2 lcos()




d T

dt .
y




..
. 2
..
= (m1 + m2) y - m2 lsin() + m2 lcos()




T
=
0,
y = cy
y

T
.





.
2 .
= m2l + m2 y lcos()




d T
dt .





.
..
.
2 ..
= m2l m2 y lsin() +m2 l y cos()



T
.
.
= - m2 y lsin()



= m2glsin()

Hệ phơng trình vi phân chuyển động của con lắc có dạng:
..
(m1+m2) y + m2l .. cos() m2l . 2sin() + cy = 0
..

m2l y cos() + m2l2 .. + m2glsin() = 0
Sử dụng các phép biến đổi toán học đa hệ phơng trình trên về dạng
4



Phạm Tuấn Long

Đồ án tin học
..

.

2
2
y = (m2gsin()cos() + m2lsin() - cx)/(m1 + m2sin ())

..

..

= (-cos() y - gsin())/l

Để thuận tiện cho việc lập trình đặt
ff[1]=(m2gsin(y[3])cos(y[3])+m2lsin(y[3])y[4]y[4]cy[1])/(m1+m2sin2(y[3]) )
ff[2] = (-cos(y[3])ff[1]-gsin(y[3])/l
f[1] = y[2]
f[2] = ff[1]
f[3] = y[4]
f[4] = ff[2]
III/ Phần chơng trình
Phần này nhằm giải hệ phơng trình vi phân cấp một và cấp 2 qua đó khảo sát
cơ hệ con lắc eliptic . Chơng trình đợc viết trên ngôn ngữ C.
#include "fstream.h"
#include"stdio.h"

#include"math.h"
#include"conio.h"
#include"graphics.h"
#include"dos.h"
#include"iostream.h

//****khoi tao do hoa****//

void khoitao()
{
int mh=0,mode=0;
initgraph(&mh,&mode,"d:\\tc\\bgi");
}
//****Module goi ham thu nhat****//
void dif(float x,float*y,float*f)
{
f[1]=0*x+y[2];
f[2]=(1-y[1]*y[1])*y[2]-y[1];
}
//*****Module goi ham thu hai*****//
void
module2(float*ff,float*f,float*y,float
x,float
m1,float
m2,float l,float g,float c)
{
ff[1]=(m2*g*cos(y[3])*sin(y[3])+m2*l*sin(y[3])*y[4]*y[4]-c*y[1])/
(m1+m2*sin(y[3])*sin(y[3]));
ff[2]=(0*x-g*sin(y[3])-cos(y[3])*ff[1])/l;
f[1]=y[2];

f[2]=ff[1];
f[3]=y[4];
f[4]=ff[2];
}
//*****Ham lam tron so*****//
int round(float a)
{
if ((a-floor(a))>= 0.5) a=ceil(a);
if ((a-floor(a))< 0.5) a=floor(a);
return a;
}
//****Module giai he phuong trinh vi phan cap
1****//

5


Ph¹m TuÊn Long

§å ¸n tin häc

void runge(float x,float h,int nstep,int n,float*y,float*f,
float*f1,float*f2,float*f3,float*f4,float*yy)
{
float ts,hh,tt,t1;
float p3[200],p4[200][4];
int i,j,xd,yd;
hh=0.5*h;
ts=x;
printf("bien x

cac gia tri cua y");
for(i=1;i<=nstep;++i)
{
printf("\n %8.2f",x);
p3[i]=x;
for(j=1;j<=n;++j) printf("%16.2f",y[j]);
for(j=1;j<=n;++j) p4[i][j]=y[j];
dif(x,y,f);
for(j=1;j<=n;++j) f1[j]=h*f[j];
tt=x+hh;
for(j=1;j<=n;++j) yy[j]=y[j]+0.5*f1[j];
dif(tt,yy,f);
for(j=1;j<=n;++j)
{
f2[j]=h*f[j];
yy[j]=y[j]+0.5*f2[j];
}
dif(tt,yy,f);
tt=x+h;
for(j=1;j<=n;++j)
{
f3[j]=h*f[j];
yy[j]=y[j]+f3[j];
}
dif(tt,yy,f);
x=ts+h*i;
for(j=1;j<=n;++j)
{
f4[j]=h*f[j];
y[j]=y[j]+(f1[j]+2*f2[j]+2*f3[j]+f4[j])/6;

}
if (i%22==0)
{
getch();clrscr();
}
}
printf("\n
Nhan ENTER de xem do thi cua co he");
getch();
//***Doan chuong trinh ve do thi cua co he***//
khoitao(); setbkcolor(15);
setcolor(1);
rectangle(4,4,633,475);
setcolor(8);
xd=getmaxx()/2;yd=getmaxy()/2;
line(xd-290,yd,xd+290,yd);
line(xd,yd+200,xd,yd-180);
line(xd+283,yd+3,xd+290,yd);
line(xd+283,yd-3,xd+290,yd);
line(xd+3,yd-173,xd,yd-180);
line(xd-3,yd-173,xd,yd-180);

6


Ph¹m TuÊn Long

§å ¸n tin häc

setcolor(5);

outtextxy(xd+150,yd+150,"DRAWING..");
setcolor(1);
outtextxy(xd-8,yd+5,"O");
outtextxy(xd-30,yd-180,"x,v");
outtextxy(xd+288,yd+5,"t");
for(j=1;j<=n;++j)
for(i=1;i<=nstep;++i)
{
if(j==n) setlinestyle(1,1,1); else setlinestyle(0,1,1);
if(i==1) moveto(xd+round(25*p3[i]),yd-round(25*p4[i][j]));
else lineto(xd+round(25*p3[i]),yd-round(25*p4[i][j]));
delay(20);
}
setcolor(1);
setlinestyle(0,1,1); line(xd+200,yd-155,xd+220,yd-155);
setlinestyle(3,1,1); line(xd+200,yd-140,xd+220,yd-140);
setcolor(0);
outtextxy(xd+150,yd+150,"DRAWING..");
setcolor(1);
outtextxy(xd+225,yd-160,"Vitri");
outtextxy(xd+225,yd-145,"Vantoc");
outtextxy(510,10,"PHAM TUAN LONG");
outtextxy(510,25,"CO TIN A-K43");
outtextxy(xd-120,yd-200,"DO THI MO TA DAO DONG CUA CO HE");
getch();
closegraph();
}
//****Module giai bai toan ap dung cho he co
hoc****//
void

runge2(float
x,float
h,int
nstep,int
m,float*y,float*f,float*ff,
float*f1,float*f2,float*f3,float*f4,float*yy,
float m1,float m2,float l,float g,float c)
{
float ts,hh,tt,xd,yd;
float p1[200],p2[200][4];
int i,j,ii;
char*dso[]={"0","10","20","30","40","50","60","70","80","90","100"
,"110"};
char*dso1[]={"0","1","2","3","4","5"};
char*dso2[]={"0","-1","-2","-3","-4","-5"};
char*dso3[]={"0","-10","-20","-30","-40","-50","-60","-70","-80"};
hh=0.5*h;
ts=x;
ofstream kq("Ql");
printf("
bien x
cac gia tri cua y");
for(i=1;i<=nstep;++i)
{
printf("\n %8.2f",x); p1[i]=x; kq<";
for(j=1;j<=m;++j)
{
if(j==3)
{

y[j]=y[j]*M_PI/180;
}
printf("%12.2f",y[j]); kq<
7


Ph¹m TuÊn Long

§å ¸n tin häc

}
kq<for(j=1;j<=m;++j)p2[i][j]=y[j];
module2(ff,f,y,x,m1,m2,l,g,c);
for(j=1;j<=m;++j) f1[j]=h*f[j];
tt=x+hh;
for(j=1;j<=m;++j) yy[j]=y[j]+0.5*f1[j];
module2(ff,f,yy,tt,m1,m2,l,g,c);
for(j=1;j<=m;++j)
{
f2[j]=h*f[j];
yy[j]=y[j]+0.5*f2[j];
}
module2(ff,f,yy,tt,m1,m2,l,g,c);
tt=x+h;
for(j=1;j<=m;++j)
{
f3[j]=h*f[j];
yy[j]=y[j]+f3[j];

}
module2(ff,f,yy,tt,m1,m2,l,g,c);
for(j=1;j<=m;++j)
{
f4[j]=h*f[j];
if(j==3)
y[j]=(y[j]+(f1[j]+2*f2[j]+2*f3[j]
+f4[j])/6)*180/M_PI;
else y[j]=y[j]+(f1[j]+2*f2[j]+2*f3[j]+f4[j])/6;
}
x=ts+h*i;
if (i%22==0)
{
getch();clrscr();
}
}
printf("\n
Nhan ENTER de xem do thi cua co
he");
getch();
//***Doan chuong trinh ve do thi cua co
he***//
khoitao(); setbkcolor(15);
setcolor(1);
rectangle(4,4,633,475);
setcolor(8);
xd=getmaxx()/2-100;yd=getmaxy()/2;
line(xd-200,yd,xd+340,yd);
line(xd,yd+180,xd,yd-180);
line(xd+333,yd+3,xd+340,yd);

line(xd+333,yd-3,xd+340,yd);
line(xd+3,yd-173,xd,yd-180);
line(xd-3,yd-173,xd,yd-180);
setcolor(1);
for(ii=1;ii<=11;ii++)
{
line(xd+30*ii,yd-2,xd+30*ii,yd+2);
outtextxy(xd+30*ii-5,yd+4,dso[ii]);
}
for(ii=1;ii<=5;ii++)

8


Ph¹m TuÊn Long

§å ¸n tin häc

{

line(xd+2,yd-30*ii,xd-2,yd-30*ii);
outtextxy(xd-9,yd-30*ii-2,dso1[ii]);

}

for(ii=1;ii<=5;ii++) line(xd+2,yd+30*ii,xd-2,yd+30*ii);
for(ii=1;ii<=5;ii++) outtextxy(xd-18,yd+30*ii-4,dso2[ii]);
for(ii=1;ii<=6;ii++) line(xd-30*ii,yd-2,xd-30*ii,yd+2);
for(ii=1;ii<=8;ii++) outtextxy(xd-30*ii-14,yd+4,dso3[ii]);
setcolor(5);

outtextxy(xd+200,yd+150,"DRAWING..");
setcolor(1);
outtextxy(xd-8,yd+5,"O");
outtextxy(xd-30,yd-180,"x,v");
outtextxy(xd+340,yd-8,"t(s)");
setlinestyle(0,1,1);
for(j=1;j<=m;++j)
for(i=1;i<=nstep;++i)
{
if(j==2) setlinestyle(1,1,1);
if(j==3)
{

setcolor(4);
setlinestyle(0,1,1);

}

if(j==4)

{

setcolor(4);
setlinestyle(1,1,1);
}

if(i==1) moveto(xd+round(30*p1[i]),yd-round(30*p2[i][j]));
else lineto(xd+round(30*p1[i]),yd-round(30*p2[i][j]));
delay(20);


}

}
setcolor(1);
setlinestyle(0,1,1); line(xd+300,yd-185,xd+320,yd-185);
setlinestyle(2,1,1); line(xd+300,yd-170,xd+320,yd-170);
setcolor(4);
setlinestyle(0,1,1); line(xd+300,yd-155,xd+320,yd-155);
setlinestyle(2,1,1); line(xd+300,yd-140,xd+320,yd-140);
setcolor(0);
outtextxy(xd+200,yd+150,"DRAWING..");
setcolor(1);
outtextxy(xd+330,yd-190,"y(t)");
outtextxy(xd+330,yd-175,"dy(t)");
setcolor(4);
outtextxy(xd+330,yd-160,"phi(t)");
outtextxy(xd+330,yd-145,"dphi(t)");
setcolor(1);
outtextxy(510,10,"PHAM TUAN LONG");
outtextxy(510,25,"CO TIN A-K43");
outtextxy(xd-120,yd-200,"DO THI MO TA DAO DONG CUA CO HE");
getch();
closegraph();

void main()
{

//********chuong trinh chinh*********//

9



Phạm Tuấn Long

Đồ án tin học

float x,h,ch,m1,m2,l,g,c;
float y[10],yy[10],f1[10],f2[10],f3[10],f4[10],f[10],ff[10];
int ma,n,nstep,m,i;
tt:clrscr();
printf("
******************CHUONG_TRINH_GIAI_PTVT_THEO_RUNGEKUTTA************
********\n");
printf("
====================================================================
========");
n=2;m=4;g=9.8;
printf("\n\nChon1:Giai he ptvp VANDERPOL theo RUNGE_KUTTA");
printf("\nChon2:Ptvp cap 2 cho bai toan con lac ELIPTIC ");
printf("\nBan muon giai he ptvp cap 1 hay 2:");scanf("%d",&ma);
switch(ma)
{
case 1:
printf("Nhap so doan can tinh nstep:");scanf("%d",&nstep);
printf("Nhap buoc can tinh h:");scanf("%f",&h);
printf("Cho gia tri ban dau cua x:");scanf("%f",&x);
for(i=1;i<=n;++i)
{
printf("Cho gia tri ban dau cua y[%d]:",i);scanf("%f",&y[i]);
}

runge(x,h,nstep,n,y,f,f1,f2,f3,f4,yy);
break;
case 2:
printf("Nhap so doan can tinh nstep:");scanf("%d",&nstep);
printf("Nhap buoc can tinh h:");scanf("%f",&h);
printf("Cho gia tri ban dau cua x:");scanf("%f",&x);
printf("Cho khoi luong cua vat 1 m1:");scanf("%f",&m1);
printf("Cho khoi luong cua vat 2 m2:");scanf("%f",&m2);
printf("Cho chieu dai l:");scanf("%f",&l);
printf("Cho do cung cua lo xo c:");scanf("%f",&c);
for(i=1;i<=m;++i)
{
printf("Cho gia tri ban dau cua y[%d]:",i);scanf("%f",&y[i]);
}
runge2(x,h,nstep,m,y,f,ff,f1,f2,f3,f4,yy,m1,m2,l,g,c);
break;
}
printf("\n
Ban co muon tinh tiep tuc nua khong(C/K)?");
ch=getch();
if(ch=='c'||ch=='C') goto tt;
}

Trong đó:
nstep: Số các bớc cần tính
h: Khoảng cách giữa 2 nút kế tiếp
m1: Khối lợng của vật một
m2: Khối lợng của con lắc
l: Chiều dài thanh dẫn
c: Độ cứng của lò xo

y[1]: Vị trí ban đầu của vật có khối lợng m1
y[2]: Vận tốc ban đầu của vật có khối lợng m1
y[3]: Vị trí ban đầu của con lắc
10


Phạm Tuấn Long

Đồ án tin học

y[4]: Vận tốc ban đầu của con lắc
Đó là chơng trình giải hệ phơng trình vi phân cấp một và hai bằng phơng pháp
RUNGE_KUTTA. Molule 1 nhằm giải hệ phơng trình vi phân cấp một, module
hai nhằm giải hệ phơng trình vi phân cấp hai áp dụng cho bài toán cơ. Khi cần sử
dụng chơng trình với các hệ phơng trình vi phân khác nhau ngời sử dụng chỉ cần
thay đổi các module sau:
Đối với hệ phơng trình vi phân cấp một chỉ cần tác động vào module:
void dif(float x,float*y,float*f)
{


}

Ngời sử dụng chỉ việc đa số phơng trình cần tính toán vào module trên và thay
đổi số n ở chơng trình chính (n cho biết số phơng trình cần đa và để tính toán )
Đối với hệ phơng trình vi phân cấp hai, ngời sử dụng chỉ cần tác động vào
module:
void
module2(float*ff,float*f,float*y,float
m2,float l,float g,float c)

{


}

x,float

m1,float

Sau đó thay đổi số phơng trình cần tính toán tại chơng trình chính.
void main()
{


}

IV/ Một số kết quả của chơng trình
Với nstep =110 ; m1= 50; m2= 4; l=10; c=100 y[1] = 2; y[2]=0; y[3] = 0; y[4] =
0;
11


Ph¹m TuÊn Long

§å ¸n tin häc

Ta cã ®å thÞ:

Víi nstep =110 ; m1= 50; m2= 4; l=10; c=100 y[1] = 0; y[2]=2; y[3] = 0; y[4] =
0;

Ta cã ®å thÞ m« t¶ dao ®éng cña con l¾c.
12


Ph¹m TuÊn Long

§å ¸n tin häc

Víi nstep =110 ; m1=50; m2=4; l=10; c=100 y[1] = 0; y[2]=0; y[3]=60o; y[4]=0;
Ta cã ®å thÞ:

13


Ph¹m TuÊn Long

§å ¸n tin häc

Víi nstep =110 ; m1=50; m2=4; l=10; c=100 y[1] = 0; y[2]=0; y[3]=0; y[4]=2;
14


Phạm Tuấn Long

Đồ án tin học

Ta có đồ thị:

Kết luận: Với phơng pháp RUNGE_KUTTA, ta có thể giải đợc các phơng trình
phi tuyến với độ chính xác khá cao và có thể khảo sát chuyển động của những

cơ hệ phức tạp qua đó nghiên cứu đợc đặc tính của cơ hệ nh vị trí,vận tốc, gia
tốc

15


Phạm Tuấn Long

Đồ án tin học
Tài liệu tham khảo

1. Đinh Văn Phong: Phơng pháp số trong cơ học. NXB Khoa Học Kỹ Thuật.
2. Tạ Văn Đĩnh: Phơng pháp tính. NXB Giáo Dục.
3. Đỗ Sanh: Cơ lý thuyết (Tĩnh học và động học). NXB Giáo Dục.

4. Đỗ Sanh: Cơ lý thuyết (Động lực học). NXB Giáo Dục.

16


Phạm Tuấn Long

Đồ án tin học
Mục Lục
Trang

Lời nói đầu

1


Phần thuyết minh

2

I/ Giải gần đúng hệ phơng trình vi phân thờng bằng

2

Phơng pháp RUNGE_KUTTA
II/ Phơng trình vi phân chuyển động của con lắc

3

eliptic và cách giải bằng phơng pháp RUNGE_KUTTA:
III/ Phần chơng trình

5

IV/ Một số kết quả của chơng trình

15

17



×