Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.04.2017, 15:32   #1
Shoshmar12
Новичок
Джуниор
 
Регистрация: 23.03.2017
Сообщений: 2
По умолчанию Работа в scilab

Код:
clear all
m=4;
r=0.015; s=%pi*r.^2; g=9.8;
ro=1000; c=0.045; rg=7800;
V=m./rg;
FA=ro*g*V;
k=0.5*c*s*ro;
v0=30;
alpha=45*%pi/180;
vx1(1)=v0*cos(alpha);
vy1(1)=v0*sin(alpha);
ax1(1)=-k*sqrt(vx1(1).^2+vy1(1).^2).*vx1(1)/m;
ay1(1)=-(m*g+k*sqrt(vx1(1).^2+vy1(1).^2).*vy1(1))/m-FA/m;
x1(1)=0;
y1(1)=0;
dt=0.1;
i=1;
for t=0:dt:30;
    vx1(i+1)=vx1(i)+ax1(i)*dt;
    vy1(i+1)=vy1(i)+ay1(i)*dt;
x1(i+1)=x1(i)+vx1(i)*dt+0.5*ax1(i)*dt^2;
y1(i+1)=y1(i)+vy1(i)*dt+0.5*ay1(i)*dt^2;
ax1(i+1)=-k*sqrt(vx1(i).^2+vy1(i).^2).*vx1(i)/m;
ay1(i+1)=-(m*g+k*sqrt(vx1(i).^2+vy1(i).^2).*vy1(i))/m-FA/m;
i=i+1;
end
yx1=max(y1);
xy1=max(x1);
t=0:dt:30+dt;
i=1;
x2(1)=0;
y2(1)=0;
alpha=60*%pi/180;
k=0.5*c*s*ro;
vx2(1)=v0*cos(alpha);
vy2(1)=v0*sin(alpha);
ax2(1)=-k*sqrt(vx2(1).^2+vy2(1).^2).*vx2(1)/m;
ay2(1)=-(m*g+k*sqrt(vx2(1).^2+vy2(1).^2).*vy2(1))/m-FA/m;
for t=0:dt:30;
    vx2(i+1)=vx2(i)+ax2(i)*dt;
    vy2(i+1)=vy2(i)+ay2(i)*dt;
    x2(i+1)=x2(i)+vx2(i)*dt+0.5*ax2(i)*dt^2;
    y2(i+1)=y2(i)+vy2(i)*dt+0.5*ay2(i)*dt^2;
    ax2(i+1)=-k*sqrt(vx2(i).^2+vy2(i).^2).*vx2(i)/m;
ay2(i+1)=-(m*g+k*sqrt(vx2(i).^2+vy2(i).^2).*vy2(i))/m-FA/m;
    i=i+1;
end
yx2=max(y2);
xy2=max(x2);
t=0:dt:30+dt;
i=1;
x3(1)=0;
y3(1)=0;
alpha=80*%pi/180;
k=0.5*c*s*ro;
vx3(1)=v0*cos(alpha);
vy3(1)=v0*sin(alpha);
ax3(1)=-k*sqrt(vx3(1).^2+vy3(1).^2).*vx3(1)/m;
ay3(1)=-(m*g+k*sqrt(vx3(1).^2+vy3(1).^2).*vy3(1))/m-FA/m;
for t=0:dt:30;
    vx3(i+1)=vx3(i)+ax3(i)*dt;
    vy3(i+1)=vy3(i)+ay3(i)*dt;
    x3(i+1)=x3(i)+vx3(i)*dt+0.5*ax3(i)*dt^2;
    y3(i+1)=y3(i)+vy3(i)*dt+0.5*ay3(i)*dt^2;
    ax3(i+1)=-k*sqrt(vx3(i).^2+vy3(i).^2).*vx3(i)/m;
ay3(i+1)=-(m*g+k*sqrt(vx3(i).^2+vy3(i).^2).*vy3(i))/m-FA/m;
    i=i+1;
end
yx3=max(y3);
xy3=max(x3);
t=0:dt:30+dt;
xy=[xy1,xy2,xy3];
yx=[yx1,yx2,yx3];
figure(1)
subplot(2,2,1)
plot(t,ax1,t,ax2,t,ax3);
xgrid 
xlabel('t');
ylabel('ax1');
 
subplot(2,2,2)
plot(t,ay1,t,ay2,t,ay3);
xgrid 
xlabel('t');
ylabel('ay1');
 
subplot(2,2,3)
plot(t,x1,t,x2,t,x3);
xgrid
xlabel('t');
ylabel('x');
 
subplot(2,2,4)
plot(t,y1,t,y2,t,y3);
xgrid
xlabel('t');
ylabel('y');
 
figure(2)
subplot(2,2,1)
plot(t,vx1,t,vx2,t,vx3);
xgrid
xlabel('t');
ylabel('vx');
 
subplot(2,2,2)
plot(t,vy1,t,vy2,t,vy3);
xgrid
xlabel('t');
ylabel('vy');
Пожалуйста, оформляйте Ваш код согласно правилам.

вот есть недоработанный код, нужно добавить акулу( скорость, она движется на одной и той же высоте. по оси у то есть ничего у него не меняется.у меня тут гарпун падает вниз, то есть она уходит под мель.
1. почему так происходит
2. время полета слишком маленькая гарпуна
3. двадцатый вариант
Разработать модель подводной охоты. На расстоянии r под углом  подводный охотник видит неподвижную акулу. На сколько метров выше ее надо целиться, чтобы гарпун попал в цель?

Вариант 20.
Поставить и решить задачу о подводной охоте при дополнительном условии: акула движется.

Последний раз редактировалось Вадим Мошев; 16.04.2017 в 14:43.
Shoshmar12 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
scilab Shoshmar12 Помощь студентам 1 24.03.2017 15:41
Работа в scilab Shoshmar12 Фриланс 0 23.03.2017 17:23
Scilab Rellax Помощь студентам 2 02.03.2017 09:07
Контрольная работа. scilab 5.2.2 Snakemes Фриланс 0 18.12.2016 16:57
Scilab/ Работа с выводом в столбец! Аделинкка Помощь студентам 1 13.10.2012 05:12