Matlab - Solución de ecuaciones diferenciales no lineales con dos incógnitas dependientes entre sí

 
Vista:

Solución de ecuaciones diferenciales no lineales con dos incógnitas dependientes entre sí

Publicado por Paola Hernández (1 intervención) el 04/12/2016 02:05:06
Hola!
Necesito resolver dos ecuaciones diferenciales de segundo orden, para ello realicé una discretización, pero tengo un problema, la primer ecuación depende de los valores de la segunda y la segunda depende de los valores de la primera y por lo tanto no lo puedo resolver. Espero pueda ayudarme.
El programa es el siguiente:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
function perrom_2
clc;
clear;
global D DL Xfa qm L Ksd N Sb fi V Kb Fa g1 g2 bres tao T R fe dz M
D=0.753;
DL=0.941;
Xfa=200;
qm=0.132;
L=0.01;
Ksd=0.00003;
fi=1; %afecta mas
N=50;
M=50;
dz=0.06/(N-1);
Sb= 0.0003;
V=0.5;
Kb=0.00001;
Fa=96485;
g1=8;
g2=0.177;
bres=0.05;
tao=250; %duda
T=298.15;
R=8.3145;
fe=0.9;
%n=500;
x0 = zeros(N,1); %#ok<PREALL>
x0=[ Sb V];
%z0 = zeros(N,1);
%z0(:,:)=V;
x =fsolve(@myfun,x0);
%=fsolve(@myfun,z0);
y=linspace (0,0.06,N);
figure(1);
plot(y,x);
%figure(2);
%plot(y,z);
 
end
 
function F= myfun(x,z)
global  D DL Xfa qm L Ksd N dz Sb fi V Kb g1 g2 bres tao T R  fe  Fa
syms S n
F=zeros (N,1);
S=x;
n=z;
F(1) = [S(2)-S(1); V];
for i=2:N-1
F(i) =[D*(S(i+1)-2*S(i)+S(i-1))/dz^2 -Xfa*((qm*fi)*(S(i)/(S(i)+Ksd)))* (1/(1+exp(-Fa*n(i)/(R*T))));(Kb*(n(i+1)-2*n(i)+n(i-1))/dz^2)-((Fa*Xfa/tao*(1/(1+exp(-Fa*n(i)/(R*T))))*(fe*g1*qm*fi*(S(i)/(S(i)+Ksd)- g2*bres*fi))))];
end
F(N)=[(D/dz)*(S(N)-S(N-1))-(DL/L)*(Sb-S(N)); (n(N)-n(N-1))];
end

El primer error me lo marca en n=z, yo necesito encontrar los valores de S y de n, y realizar una gráfica de éstos contra z.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder