Plot two lines on different graphs from integral

5 Ansichten (letzte 30 Tage)
Rodrigo Blas
Rodrigo Blas am 24 Apr. 2020
Kommentiert: Ameer Hamza am 24 Apr. 2020
To=27+273.15; %%k
cao=0.1; %%mol/dm^3
k1=.01; %%dm^3/mol*s
tha=1;thb=1;
ha=-20000; hb=-15000; hc=-41000; %%cal/mol
cpc=30;cpa=15;cpb=15; %%cal/mol*k
sumtcp=tha*cpa+thb*cpb;
delcp=cpc-cpb-cpa;
dhrx=hc-hb-ha;
E=10000; %%cal/mol
R=1.987; %%cal/mol*k
vo=2;
fao=cao*vo;
cbo=cao;
ca=@(x) cao*(1-x);
cb=@(x) cbo*(1-x);
T=@(x) To+(-dhrx)*x/(sumtcp+delcp.*x) ;
k=@(x) k1*exp(E/R*(1/To-1/T(x)));
ra=@(x) -(k(x).*ca(x).*cb(x));
vpfr1=@(x) fao./(-ra(x));
vpfr=integral(vpfr1,0,.85);
>> xspan=0:.1:1;
>> plot(vpfr,xspan)
>>
I would like to plot x vs vpfr and T vs Vpfr on different graphs. With Vpfr being the x-axis
This gives me ablank graph
  5 Kommentare
Rik
Rik am 24 Apr. 2020
vpfr=integral(vpfr1,0,0.85,'ArrayValued',true);
That still returns a scalar.
@Rodrigo: you don't explain what you want to achieve, so it is difficult to give you good advice. How would you calculate the value of vpfr for a single value of xspan? Once that is clear we can help you extend it to an array.
Rodrigo Blas
Rodrigo Blas am 24 Apr. 2020
I want to plot x from 0 to 1 on the y axis and plot its corresponding vpfr value on the x axis.
ca=@(x) cao*(1-x);
cb=@(x) cbo*(1-x);
T=@(x) To+(-dhrx)*x/(sumtcp+delcp.*x) ;
k=@(x) k1*exp(E/R*(1/To-1/T(x)));
ra=@(x) -(k(x).*ca(x).*cb(x));
vpfr1=@(x) fao./(-ra(x));
vpfr=integral(vpfr1,0,.85);
Using the integral of the vpfr function.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Ameer Hamza
Ameer Hamza am 24 Apr. 2020
Bearbeitet: Ameer Hamza am 24 Apr. 2020
I guess you are trying to do something like this. Note that I have varied x from 0 to 0.9, because at x=1, the integral diverges.
To=27+273.15; %%k
cao=0.1; %%mol/dm^3
k1=.01; %%dm^3/mol*s
tha=1;thb=1;
ha=-20000; hb=-15000; hc=-41000; %%cal/mol
cpc=30;cpa=15;cpb=15; %%cal/mol*k
sumtcp=tha*cpa+thb*cpb;
delcp=cpc-cpb-cpa;
dhrx=hc-hb-ha;
E=10000; %%cal/mol
R=1.987; %%cal/mol*k
vo=2;
fao=cao*vo;
cbo=cao;
ca=@(x) cao*(1-x);
cb=@(x) cbo*(1-x);
T=@(x) To+(-dhrx)*x./(sumtcp+delcp.*x); % <----- element-wise division should be used
k=@(x) k1*exp(E/R.*(1/To-1./T(x))); % <----- element-wise operators should be used
ra=@(x) -(k(x).*ca(x).*cb(x));
vpfr1=@(x) fao./(-ra(x));
x = 0:0.1:0.9;
vpfr = zeros(size(x));
for i=1:numel(x)
vpfr(i) = integral(vpfr1,0,x(i));
end
plot(x, vpfr);
figure;
plot(T(x), vpfr);
  6 Kommentare
Rodrigo Blas
Rodrigo Blas am 24 Apr. 2020
Nevermind. I figured it out. THank you so much
Ameer Hamza
Ameer Hamza am 24 Apr. 2020
I am glad to be of help.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Mathematics finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by