在matlab中分别得到x(t),y(t)的图像后如何绘制(x,y)?

来源:百度知道 编辑:UC知道 时间:2024/06/25 03:57:35
我使用matlab ode45解了两个二阶微分方程(一个关于x(t),另一个关于y(t)),然后我可以独立(分别)地作出x,t和y,t图像,但是题目要求横轴为x,纵轴和y;

请问:如何在求出x(t),y(t)后得出y=f(x)的像(x,y)?
具体: 1〉x(t)的范围是区间[0,0.4]
2〉 x(t)满足的二阶微分方程为:>>function xp = xhorizontal(t,x)
>>xp=zeros(length(x),1);
>>xp(1)=x(2);
>>xp(2)=-(0.01/0.1)*(x(2)-4)^2;
3〉y(t)满足的二阶微分方程为: >>function yp = yvertical(t,y)
>>yp=zeros(length(y),1);
>>yp(1)=y(2);
>>yp(2)=-9.8-(1/0.1)*0.001*abs(y(2))*y(2);
请问根据上述条件如何用ODE45解微分方程后绘制x,y之间的函数图像(x,y)?

我既要解这个方程又要画图。

初始值没有告诉啊
x(0)=?,x'(0)=?
y(0)=?,y'(0)=?

function hh
[T1,X]=ode45(@xhorizontal,[0:0.1:1],[0 .4])
[T2,Y]=ode45(@yvertical,[0:0.1:1],[0 .4])
plot(T1,X)
figure
plot(T2,Y)
figure
plot(X(:,1),Y(:,1))
function xp = xhorizontal(t,x)
xp=zeros(length(x),1);
xp(1)=x(2);
xp(2)=-(0.01/0.1)*(x(2)-4)^2;
function yp = yvertical(t,y)
yp=zeros(length(y),1);
yp(1)=y(2);
yp(2)=-9.8-(1/0.1)*0.001*abs(y(2))*y(2);

我不是很明白你的意思
你现在到底是已经解出了x(t),y(t)
想画图呢?还是既要解这个方程又要画图?

如果只要画图的话使用ezplot函数
比如说你已经存好 function x=xfun(t)和function y=yfun(t)了
那么直接用ezplot(@xfun,@yfun,[0,4]),(第三个参数是t的范围,是我随便写的)