matlab求解抛物​问题中一元二次方程组​的解舍去问题

clear; x0=input('输入投球点X坐标:');y0=input('输入投球点Y坐标:'); v0=input('输入初始速度(m/s):'); va=input('输入初速方向(°)(输入值大于-90°小于90°):'); vx0=v0*cos(va*(pi/180)); vy0=v0*sin(va*(pi/180));%计算x,y方向的初始速度 ax=0;ay=-9.81;%重力加速度 tf=solve('y0+(vy0)^2/(2*(-ay))+1/2*ay*(t+vy0/ay)^2','t'); t1=tf(1);t2=tf(2); tmax=max([real(t1(1)),real(t2(1))]); t=0:0.1;tmax; t0=vy0/(-ay); y=zeros(1,length(t)); for n=1:length(t) if t(n)>t0 y(n)=y0+(vy0)^2/(2*(-ay))+1/2*ay*(t(n)+vy0/ay)^2; elseif t(n)<=t0 y(n)=y0+vy0*t(n)+1/2*ay*t(n)^2; end end x=vx0*t; plot(x,y); xmax=max(x); vy=ay*(tmax-t0); v1=(vy^2+vx0^2)^(1/2); angle=arctan(vy/vx0); fprintf('球投出后%g秒着地\n',tmax); fprintf('在%g处着地\n',xmax); fprintf('着地的速度大小为%g,方向为%g\n',v1,angel);

Réponses (0)

Catégories

En savoir plus sur 性能和内存 dans Centre d'aide et File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!