solve an expression and plot

3 visualizzazioni (ultimi 30 giorni)
Atom
Atom il 3 Giu 2013
Suppose, for each alpha, I have to find a delta which is the highest positive root of the equation A^2-4*B*beta=0. The expression of A, B are given in terms of alpha and delta. How to get that and how to plot alpha vs delta plot.
beta=0.85;gamma=.15;theta=0.1;
alpha=.303:.001:5
syms delta
A=-alpha*beta + alpha.*delta + gamma*beta + beta;
B=alpha.*theta*(beta -delta) + gamma*beta;
rr=solve(A^2-4*B*beta == 0)
plot(alpha,rr)

Risposta accettata

Walter Roberson
Walter Roberson il 3 Giu 2013
beta = 0.85; gamma = .15; theta = 0.1;
alpha = .303: .001: 5;
syms Alpha delta
A = -Alpha * beta + Alpha .* delta + gamma * beta + beta;
B = Alpha .* theta * (beta - delta) + gamma * beta;
rr = solve( A^2 - 4*B*beta, delta);
rrt = double(subs(rr, Alpha, alpha(1));
[maxrrt, idx] = max(rrt);
maxrr = rr(idx);
rrpos = double(subs(maxrr, Alpha, alpha));
plot(alpha, rrpos)

Più risposte (1)

Azzi Abdelmalek
Azzi Abdelmalek il 3 Giu 2013
Modificato: Azzi Abdelmalek il 3 Giu 2013
beta=0.85;
gamma=.15;
theta=0.1;
alpha=(.303:.001:5)'
syms delta
A=-alpha*beta + alpha*delta + gamma*beta + beta;
B=alpha*theta*(beta -delta) + gamma*beta;
for k=1:numel(A)
rr{k}=solve(A(k).^2-4*B(k)*beta == 0);
end
  2 Commenti
Walter Roberson
Walter Roberson il 3 Giu 2013
After which you would need the step of finding the highest positive root for each rr{:}
Atom
Atom il 4 Giu 2013
Thanks for your reply. delta may some times given one +ve, one -ve roots and 2 positive. I need the largest positive value of delta for each alpha. I also would like to plot(alpha, delta).

Accedi per commentare.

Categorie

Scopri di più su Special Functions in Help Center e File Exchange

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by