Plot two lines on different graphs from integral

2 次查看(过去 30 天)
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 个评论
Rik
Rik 2020-4-24
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 2020-4-24
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.

请先登录,再进行评论。

采纳的回答

Ameer Hamza
Ameer Hamza 2020-4-24
编辑:Ameer Hamza 2020-4-24
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 个评论

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 2-D and 3-D Plots 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by