
- •Содержание:
- •Введение:
- •Описание выбранного прототипа снаряда
- •Построение компьютерной модели расчёта траектории неуправляемого ла (с заданными характеристиками) Анализ и представление исходных данных
- •Модель динамики неуправляемого ла Движение ла по направляющим
- •Активный участок
- •Пассивный участок
- •Алгоритмы численного интегрирования
- •Решение задачи построения модели для одного шага интегрирования методами Эйлера и Рунге-Кутта Начальные условия
- •Расчет системы уравнений методом Эйлера
- •Расчет системы уравнений методом Рунге-Кутта
- •Сравнение решений тестового примера на 1 шаг, полученных без пк
- •Исследовательская часть
- •Промежуточные вычисления:
- •Промежуточные вычисления:
- •Список использованных источников:
Промежуточные вычисления:
V: Q: Y: X: T:
23,763874 0,782398 1,932259 1,931275 0,220200
130,429199 0,665657 60,209183 50,639038 1,210199
240,823135 0,622026 209,025696 161,298325 2,210198
351,822113 0,594530 452,504089 330,191559 3,210197
432,421600 0,574160 789,378723 552,577148 4,210201
410,369293 0,554478 1145,322510 777,929565 5,210224
390,529816 0,533505 1487,881226 985,174377 6,210247
372,570251 0,511212 1818,487915 1175,542236 7,210270
356,230286 0,487569 2138,346680 1350,063477 8,210293
341,304321 0,462546 2448,473633 1509,606689 9,210316
327,628387 0,436118 2749,739258 1654,914673 10,210339
315,070465 0,408263 3042,888184 1786,622437 11,210361
303,524170 0,378962 3328,566406 1905,282227 12,210384
292,902863 0,348209 3607,338623 2011,374756 13,210407
283,135834 0,316002 3879,694092 2105,320312 14,210430
274,165192 0,282353 4146,065918 2187,491699 15,210453
265,943207 0,247286 4406,835449 2258,217773 16,210476
258,430359 0,210840 4662,344238 2317,796143 17,210499
251,593369 0,173071 4912,887695 2366,490967 18,210522
245,403946 0,134051 5158,762695 2404,544189 19,210545
239,837524 0,093874 5400,248047 2432,175537 20,210567
234,872025 0,052648 5637,703613 2449,588623 21,210590
230,487061 0,010502 5872,410156 2456,972656 22,210613
226,663147 -0,032420 6097,707520 2454,506836 23,210636
223,380859 -0,075957 6321,226074 2442,352783 24,210659
220,620346 -0,119939 6541,516113 2420,673584 25,210682
218,360825 -0,164188 6758,337891 2389,623779 26,210705
216,580521 -0,208521 6971,687012 2349,355713 27,210728
215,255966 -0,252755 7181,595215 2300,018311 28,210751
214,362350 -0,296715 7388,096680 2241,760742 29,210773
213,873505 -0,340230 7591,227539 2174,732422 30,210796
213,761581 -0,383144 7791,015137 2099,085938 31,210819
213,997803 -0,425316 7987,480469 2014,974976 32,210800
214,552155 -0,466622 8180,636230 1922,559082 33,210632
215,394058 -0,506956 8370,488281 1822,002563 34,210464
216,492340 -0,546230 8557,041992 1713,474976 35,210297
217,815765 -0,584377 8740,285156 1597,153198 36,210129
219,332977 -0,621347 8920,211914 1473,221069 37,209961
221,013184 -0,657105 9096,802734 1341,869263 38,209793
222,825775 -0,691633 9270,041992 1203,298706 39,209625
224,741074 -0,724925 9439,906250 1057,717041 40,209457
226,730392 -0,756987 9606,370117 905,341431 41,209290
228,765884 -0,787836 9769,406250 746,397583 42,209122
230,821045 -0,817495 9928,986328 581,120117 43,208954
232,870499 -0,845993 10085,081055 409,752747 44,208786
234,890274 -0,873367 10237,661133 232,547562 45,208618
236,857834 -0,899655 10386,698242 49,765450 46,208450
237,377380 -0,906571 10426,327148 -0,507259 46,488403
Программа расчёта методом Эйлера:
#include<stdio.h>
#include<math.h>
#include<conio.h>
#include<iostream.h>
#include<stdlib.h>
#include<dos.h>
main()
{
FILE *fin;
float t0,v0,y0,x0,dt,cx,i,r,s,q0,q,m,w,v1,x1,y1,q1,v11,x11,y11,q11;
int k=1;
clrscr();
printf("PROGRAMMA RASCHOTA EILERA\n");
printf("Vvedite dt=");
scanf("%f",&dt);
printf("Vvedite t0=");
scanf("%f",&t0);
printf("Vvedite v0=");
scanf("%f",&v0);
printf("Vvedite y0=");
scanf("%f",&y0);
printf("vvedite x0=");
scanf("%f",&x0);
printf("Vvedite cx=");
scanf("%f",&cx);
printf("Vvedite i=");
scanf("%f",&i);
printf("Vvedite q0=");
scanf("%f",&q0);
printf("Vvedite q=");
scanf("%f",&q);
printf("vvedite r=");
scanf("%f",&r);
printf("Vvedite s=");
scanf("%f",&s);
printf("Vvedite m=");
scanf("%f",&m);
printf("CHTOBU NACHAT RASCHOT NAGMITE 'ENTER'\n");
getch();
fin=fopen("EILER.txt","w+");
q0=((M_PI)*q0)/180;
w=m-q*t0;
do{
v11=r/w-((0.5*(cx*i*1.24*exp(-y0/7800)*s*pow(v0,2)))/w)-9.81*sin(q0);
q11=-9.81*cos(q0)/v0;
y11=v0*sin(q0);
x11=v0*cos(q0);
v1=v0+v11*dt;
q1=q0+q11*dt;
y1=y0+y11*dt;
x1=x0+x11*dt;
printf("v=%f\t",v1); printf("q=%f\t",q1); printf("y=%f\t",y1); printf("x=%f\t",x1);
if(k==1 || k%100==0)
{
fprintf(fin,"%f\t ",v1);
fprintf(fin,"%f\t ",q1); fprintf(fin,"%f\t ",x1); fprintf(fin,"%f\t ",y1); fprintf(fin,"%f\n ",t0);
}
t0=t0+dt;
if(t0>4)r=0;
v0=v1;
x0=x1;
y0=y1;
q0=q1;
if(t0<=4) w=m-q*(t0+dt);
if(t0>4) w=m-q*4;
k++;
if(k==10000) break;
}
while(y1>0);
printf("\n");
printf("RASCHT ZAKONCHEN NAGMITE 'ENTER', FILE EILER.txt");
fclose(fin);
getch();
return 0;
}