2012-03-15 9 views
0

私はPython、numpyとscipyを学んでいます。 パイソンにMathWorks社のMATLAB関数のこのような変換可能である場合、私は不思議だ:Matlab - > scipy ode(complex)関数の翻訳

function [tT, u ] = SSolve5TH(n, t, t0,tf,u_env,utop_init, utop_final,ubottom,te_idx) 
options = []; 
[tT,u] = ode23s(@SS,t,u_env,options,@B); 

function y = B(x) 
    y = zeros(n,1); 
    if x >= t(te_idx) 

     y(1,1) = utop_final; 
     y(n,1) = ubottom ; 

    else 

     y(1,1) = (x - t0)/(tf - t0) * (utop_final - utop_init) + utop_init; 
     y(n,1) = ubottom ; 
    end 
end 

function rp = SS(t,r,B) 

    global AH 
    rp = AH * r + B(t); 

    end 
end 

は、この例では、n個、例えば15です。

tは時間配列

AH = [15] XT行列で

T0 = 0

TF = 20(たとえば)

u_env = [20,20,20、 20,20,20,20,20,20,20,20,20,20,20,20]

utop_init = 20

utop_final = 40 ; ubottom = 20;

te_idx = 4;

+0

これはおそらく可能です。あなたは何を試しましたか、どのような問題が発生しましたか? –

+0

問題はode stiffの実装から始まります! – marco

答えて