我需要绘制这个等式:(y)/[(4*3.14*10^-7)*(1+(4200/(1+0.03(y^8.2))^0.5))]
在y=0
到y=3
我试过这个
y=0:0.5:1:1.5:2:2.5:3;
x=(y)./((4*3.14*10.^-7)*(1+(4200./(1+0.03*y.^8.2).^0.5)));
plot(x,y)
答案 0 :(得分:3)
您的plot
没问题,只有您的y
被定义有问题:语法为var=from:step:to
,不需要额外的冒号。所以你要么说
y=[0 0.5 1 1.5 2 2.5 3];
或者,更好,
y=0:0.5:3;
或者,现在等同于什么,
y=linspace(0,3,7);
请注意,最后一个表单可以让您轻松生成函数的更精细图表(因为plot
默认情况下会绘制分段线性函数,即将点与线段连接起来)。因此,您可能希望将点数从7
增加到更大的点,例如50
。
没有等待,还有一个小问题:在.*
的定义中你应该*
而不是x
,就像其他每个操作都附加一个.
(使这些操作按元素进行数组操作)。
并且您必须plot(y,x)
,因为这似乎是您的函数的顺序:y
是独立的,x
是函数的值。
修正版:
y=linspace(0,3,50);
x=(y)./((4*3.14*10.^-7).*(1+(4200./(1+0.03*y.^8.2).^0.5)));
plot(y,x)
xlabel('y')
ylabel('x(y)'); %for clarity
结果: