2017-03-12 87 views
0

我希望輸出值爲C,在循環中的所有範圍it有限元素分析,1D

當我運行它時,我得到error in sym/subref, L_tilde, idx

我不知道這是什麼意思。

syms C; 

alphaX=0.05; 
DiffCoef = 5*10^-5 

v = 0.1; 
L = 10; xZones = 100; 

dx = L/xZones; 

T = 150; 
u = 0.1; 

dt= 0.005; 
    t = 150; 
    D = DiffCoef + (alphaX * u); 

for i = 1:xZones 
    for t = 1:xZones 

     (C(i,t+dt) - C(i,t))/dt = -u(C(i+1,t +dt) - C(i,t+dt))/dx + D(C(i+1,t+dt) - 2*(C(i,t+dt) + C(i-1,t+dt)))/(dx)^2 


    end 
end 

回答

0

假設這是Matlab代碼,也存在一些問題:

1)您不能分配兩個輸出這樣的聲明

(C(i,t+dt) - C(i,t))/dt = ... 

是非法的。 Matlab的表情只能返回一個輸出(不使用例如「交易」),所以你的情況,你將不得不爲可能重新安排你的表達

C(i,t+dt) = ... 
C(i,t) = ... 

而且,因爲這似乎是一個時間差公式通常什麼F(T + DT)是未知(左側)和F(T)是已知值一時間步(右手邊),這樣

f(t+dt) = dt*old_rhs - f(t) 

在你的情況已經規定_C(i,t_dt)_這看起來很不尋常,所以請檢查你的方程式。