problem with Euler's explicit methode

1 view (last 30 days)
Clc
clearall
%%%%%%%%%%%%%输入变量%%%%%%%%%%%%%%%%%%%%%%%%%; 200;
vn = 1.52*(10^-5);%体积开始朋克
VCH4 = 53/100;
VCO2 = 47/100;
%pv = nrt ...... v/n = rt/p aber r,t ud p是恒定的:
%v = n;n = c.vn .... c = v/vn
%k3 = 0.008;
%k4= 0.001;
%k6=0.5;
%k8 = 0.048;
%Cco2=X Cch4=Y Ch2=Z Cco= M Ch2o= L Cc=N
%dy/dt = -0.5*y*l;
%dl/dt = 0.016*x*z -0.001*m*l -0.5*y*l;
%dx/dt = -0.008*x*z -0.048*n*x +0.001*m*l;
%dm/dt = -0.001*m*l + 0.5*y*l + 0.096*n*x;
%dz/dt = -0.016*x*z +0.001*m*l +1.5*y*l;
%dn/dt = 0.008*x*z -0.048*n*x;
Y0 = VCH4/VN;%34.868,421052631578947368421052632 %m0 consentration in Startpunkt für Methan
x0 = vco2/vn;%30.921,052631578947368421052631579%K0同意
T0 = 0;
趋势= 100;
h = 0.1;
l0 = 0; m0 = 0; z0 = 0; n0 = 0;
X(1)=X0;Y(1)=y0;L(1)=L0;M(1)=M0;Z(1)=Z0;N(1)=N0;
k=(tend-t0)/h;
%%% 解决方案
t(1)= t0;
func1 =@(y,l)-0.5*y*l;%dY/dt
func2=@(X,Z,M,Y,L) 0.016*X*Z -0.001*M*L -0.5*Y *L;%DL/DT
func3=@(X,Z,M,L,N) -0.008*X*Z -0.048*N*X +0.001*M*L;%dX/dt
func4 =@(m,l,y,n,x)-0.001*m*l + 0.5*y*y*l + 0.096*n*x;%DM/DT
func5 =@(x,z,m,l,y)-0.016*x*z +0.001*m*l +1.5*y*l;%DZ/DT
func6 =@(x,x,n)0.008* z -0.048*n*x;%dN/dt
%% Euler
为了i = 1:k-1
t(i+1)= i*h;
y(i+ 1)= y(i)+ h*func1(y(i),l(i));
L(i+1)=L(i)+h*func2(X(i),Z(i),M(i),L(i),Y(i));
x(i+1)= x(i)+h*func3(x(i),z(i),n(i),m(i),l(i));
m(i+1)= m(i)+h*func4(m(i),l(i),y(i),n(i),x(i));
z(i+1)= z(i)+h*func5(x(i),z(i),m(i),l(i),y(i));
N(i+1)=N(i)+h*func6(X(i),Z(i),N(i)) ;
结尾
图1)
plot (t,Y)
xlabel('zeit in s');
ylabel(“摩尔/L中的konzentration”
标题('CH4');
figure(2)
plot(t,X)
xlabel('zeit in s');
ylabel(“摩尔/L中的konzentration”
标题('CO2');
图(3)
情节(t,l)
xlabel('zeit in s');
ylabel(“摩尔/L中的konzentration”
标题('H2O');
图(4)
情节(t,z)
xlabel('zeit in s');
ylabel(“摩尔/L中的konzentration”
标题('H2');
图(5)
情节(t,m);
xlabel('zeit in s');
ylabel(“摩尔/L中的konzentration”
标题('co');
图(6)
情节(t,n);
xlabel('zeit in s');
ylabel(“摩尔/L中的konzentration”
标题('C');
我想编写一个程序来求解6个方程,其中6个变量抛出了Euler的显式methode,但所有变量仅为0值。
it is somthing for my University Homwork

接受的答案

艾伦·史蒂文斯(Alan Stevens)
因为您的初始值为零
l0 = 0; m0 = 0; z0 = 0; n0 = 0;
and they multiply the terms on the right-hand side of your func equations, there is never anything to change the values of Y, L, X ... etc.
另外,您还需要确保以与函数定义中指定的顺序相同的顺序调用函数。
L(i+1)=L(i)+h*func2(X(i),Z(i),M(i),L(i),Y(i));
x(i+1)= x(i)+h*func3(x(i),z(i),n(i),m(i),l(i));
应该
l(i+1)= l(i)+h*func2(x(i),z(i),m(i),y(i),l(i));
x(i+1)= x(i)+h*func3(x(i),z(i),m(i),l(i),n(i));
2条评论
艾伦·史蒂文斯(Alan Stevens)
您需要在至少一个的某个地方提供非零的初始值 L0,M0,Z0或N0。

登录发表评论。

更多答案(0)

标签

社区寻宝

在Matlab Central中找到宝藏,发现社区如何为您提供帮助!

Start Hunting!