Plot two lines on different graphs from integral
显示 更早的评论
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
2020-4-24
Since vpfr is a scalar you are only plottin a single value. Is that what you mean?
Rodrigo Blas
2020-4-24
You have to convert your problem to as shown below. otherwise you will get only one value.
% Integrate the vector-valued function sin((1:5)*x) from 0 to 1:
Q = integral(@(x)sin((1:5)*x),0,1,'ArrayValued',true)
for plotting temp, just use the for loop:
T=@(x) To+(-dhrx)*x/(sumtcp+delcp.*x) ;
for i = 1:length(xspan)
Temp(i) = T(xspan(i)) ;
end
figure;plot(Temp,xspan);grid on;
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
2020-4-24
采纳的回答
更多回答(0 个)
类别
在 帮助中心 和 File Exchange 中查找有关 Mathematics 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!