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

2 views (last 30 days)
Chou Violet
Chou Violet on 13 Oct 2018
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);

Answers (0)

Categories

Find more on 性能和内存 in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!