質問: feval(ode,t0,y0,args{:}); % ode15i sets args{1} to yp0. エラー: ode45 (line 115) odearguments(fcnhandlesused, solver_name, ode, tspan, y0, options, varargin); エラー: thrust_stand_ode (line 73) sol=ode45(m,[0 50],[0 10],[i],[l],[om],[0],[10^-9]); 元々、「関数または'f'が未定義です」という表示も出ていたのですが、 色々弄っているうちに無くなっていました。
回答: すいません、詳細は追えていないんですが、 最後の f(t) = 10^-9 で f(t) を定義した後に、 f(t)=10^-9 %おおよその理論値を使用 myfun = @(t,y) double(m(t,y,i,l,om,ze,f)); sol=ode45(@(t,y) myfun(t,y),[0 50],[0 10]); とすればエラーは避けられました。 エラーの原因としては symbolic object からの出力を ode45 に入る前に double 型に変換するところ、そして ode45 の第一引数を t,y を入力とする関数として定義する必要がある(他にもかつて方法はあったと思いますが・・とりえあず現時点での ode45 のドキュメンテーションではそのような使い方が紹介されています)点かと思います。 m の入力として f は symbolic である必要がありそうだったので、m の出力を double で変換するようにしています。