如何在MATLAB中模拟一个简单的方程式?

时间:2019-03-26 01:10:00

标签: matlab

我有一个方程需要仿真,然后用X绘制Y。我使用以下代码进行此操作,但最后它给了我这条直线,因为图形显然不是我期望的看到:

r = .5;
beta = 5;
b = 1;
N = 10;
K = 15;
p = .7:.05:5.7;
l_0 = 0:.01:1;

p*K.*(1-(l_0/r)) == 1./((N*beta*(b^beta)./((beta-1)*l_0))).^(1/(beta-1));

plot(p,l_0,'b*-')

我需要通过模拟方程式并使用上面的参数值来了解l_0随着p的变化如何变化。

这是我运行代码时得到的图形: enter image description here

我以某种方式猜测我为p和l_0设置值的方式出了问题,但是我对MATLAB几乎是陌生的,并且不知道如何解决它。如果有人能帮助我找出我在哪里犯错,我将不胜感激。

2 个答案:

答案 0 :(得分:0)

如果查看colon operator的MATLAB Documents页面,您将看到:充当单位向量。基本上,它以i间隔创建从j到k的线性空间。因此,当前显示的图形是正确的。它显示两个线性向量。

但是,您可能要更改的是图形的纵横比。现在,您的宽高比自定义项将适合您的数据(听起来好像您不想要)。在MATLAB文档的axis limits and aspect ratiosaxis style部分下面查看您想要的绘图样式。

希望这对您有所帮助。

答案 1 :(得分:0)

您在此处显示的图形/图似乎仅适用于此:

p = .7:.05:5.7;
l_0 = 0:.01:1;

plot(p,l_0,'b*-')

是的!这就对了。您写的所有其他内容都没有作用(看来)。

基本上,您没有用p来评估/填充l_0,所以如果您想看看

  • 保留p空白
  • 在LHS仅用p重新排列方程式。
  • l_0处理/填充p的值。

现在,如果您只想查看p = .7:.05:5.7;之间的曲线/图,则可以使用axiss属性或只是放大/缩小来检查该方法。

希望这会有所帮助