Normal distribution function in Matlab

7 visualizzazioni (ultimi 30 giorni)
Please help
p was changed to a normal and is giving me the error "Matrix dimensions must agree." in tau.
t0=0;
L=1;
tend=100;
I=linspace(0, 1);
p = normrnd(0.0001,0.0001,[1,10])
beta=0.1;
delta=1;
I1=0.25;
epsilon=1;
tau = (1/(beta*(L+delta*p)))*log((L*(I1+delta*p))/(delta*p*(L-I1)))
t1=linspace(0,tau);
t2=linspace(tau,tend);
I2= (L*delta*p*(exp (beta*(L+delta*p)*t1)-1)) ./ (L + delta*p* exp(beta*(L+delta*p)*t1));
I3= (L* (I1+delta*p)*exp((epsilon*beta)*(L+delta*p)*(t2-tau))-...
delta*p*(L -I1))./(L-I1+(I1+delta*p)*exp(epsilon*beta*(L+delta*p)*(t2-tau(delta))));
plot(t1,I2,'k',t2,I3,'k');

Risposta accettata

Star Strider
Star Strider il 20 Nov 2020
Use element-wise operations on every multiplication, division (and exponentiation, although not used here).
This works:
tau = (1./(beta.*(L+delta.*p))).*log((L.*(I1+delta.*p))./(delta.*p.*(L-I1)));
See Array vs. Matrix Operations for details.
  2 Commenti
JACINTA ONWUKA
JACINTA ONWUKA il 20 Nov 2020
thanks so much for your quick reply
another error "Inputs must be scalars."
t1=linspace(0,tau);
Can you please advice me on what to do?
Thanks!
Star Strider
Star Strider il 20 Nov 2020
Provide all scalar inputs to linspace.
Perhaps:
t1=linspace(0, max(tau), numel(tau));
t2=linspace(min(tau), max(tau), tend);
These are obviously just guesses.
I have no idea what you are doing, so make appropriate changes to get the result you want.

Accedi per commentare.

Più risposte (0)

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by