我正在尝试使用plot函数找到抛物线的x轴截距。
x0 = interp1(y,x,0)
然而,由于我的抛物线从原点开始,它返回0。
我如何找到远离原点的x轴截距?目前我是通过估算来确定的。
绘图代码:
global k g
g = 10;
v0 = 150;
theta = pi/4;
m = 1;
k = 0.001;
tspan = [0 22];
IC = [0; v0*cos(theta); 0; v0*sin(theta)];
[t, oput] = ode45(@dataODE, tspan, IC);
x = oput(:,1);
vx = oput(:,2);
y = oput(:,3);
vy = oput(:,4);
figure(1); clf;
plot(x,y)
where
function [p] = dataODE( t, x)
global k g
p = zeros(4,1);
p(1) = x(2);
p(2) = -k*sqrt(x(2)^2 + x(4)^2)* x(2);
p(3) = x(4);
p(4) = -g -k*sqrt(x(2)^2 + x(4)^2)* x(4);
x
将会更加简单。 - sco1global k g
,而是使用匿名函数,如function [p] = dataODE(t, x, k, g)
,然后像这样调用它[t, oput] = ode45(@(t, x)dataODE(t,x,k,g), tspan, IC);
,并删除你的两行global
代码。 - Dan