How to plot this implicit function

4 次查看(过去 30 天)
I need a beta vs eps plot of the curve t^2-d. The expression of t and d depends on x, y where x, y depend on beta. Please help. Ranges of beta and eps are both equal to 0:.01:1,
alpha=1.5; A=0.0207; gamma=0.25;
x=@(beta) (beta-alpha*(beta-gamma)+sqrt((beta-alpha*(beta-gamma)).^2+4*alpha*beta*gamma*A))./(2*beta);
y=@(beta) x.*(1-x).*beta/gamma;
t=@(beta,eps) -x+x.*y.*(alpha-eps*beta)./((A+x+y).^2);
d=@(beta,eps) eps*beta.*x.*y.*(x.^2+(A+x).*x+A*alpha)./((A+x+y).^3);
F=@(beta,eps) (t.^2-d);
figure
ezplot(F,[0,1,0,1]);
  9 个评论
Atom
Atom 2019-9-8
Inserted dot. still warning exists.
Warning: Function failed to evaluate on array inputs; vectorizing the function may speed up its evaluation and avoid the
need to loop over array elements.
> In ezplotfeval (line 56)
In ezplot>ezimplicit (line 257)
In ezplot (line 153)
In untitled1 (line 10)

请先登录,再进行评论。

采纳的回答

darova
darova 2019-9-8
Try symbolic expression
clc,clear
alpha=1.5; A=0.0207; gamma=0.25;
syms beta eps
x = (beta-alpha*(beta-gamma)+sqrt((beta-alpha*(beta-gamma)).^2+4*alpha*beta*gamma*A))./(2*beta);
y = x.*(1-x).*beta/gamma;
t = -x+x.*y.*(alpha-eps*beta)./((A+x+y).^2);
d = eps*beta.*x.*y.*(x.^2+(A+x).*x+A*alpha)./((A+x+y).^3);
% convert symbolic expression to function handle
F = matlabFunction(t.^2 - d,'vars',[beta eps]);
ezplot(F,[0,1,0,1]);
  2 个评论
darova
darova 2019-9-8
Can be used without bit-wise ./ and .* (just / and *)
madhan ravi
madhan ravi 2019-9-8
There are in-built functions under the name alpha() , beta() , gamma() , eps().

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Calculus 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by