2016-12-02 2 views
0

で関数を定義し、私は次のように機能Jという点で不可欠ParEaを計算するコードを書いた:は、MATLAB

Laa = 0.01; 
ja = 1; 
De = 0.001; 
J = @(Oma) ja.* Oma .*exp(-Oma/Laa); 
ParEaa = @(Oma) pi.^(-1).*J./(Oma.*(Oma + De)); 
IParEaa = integral(ParEaa, 0, inf) 

しかし、それはエラーを与える:

未定義関数またはメソッドタイプ 'function_handle'の入力引数に対して 'integral'。 ==で

エラー> 9 IParEaa =積分(ParEaa、0、INF)のサンプル

私はParEaJの明示的な表現を代入せずに積分を計算したいですか?私はどうすればいいのですか?

答えて

0

私はシンボリックと数値の統合を混乱させていると思います。 私はMatlabのに確認することはできませんが、私は次のことを示唆している:

数値シミュレーションについて:シンボリックな統合のために

J = @(Oma) ja.* Oma .*exp(-Oma/Laa); 
ParEaa = @(Oma,J) pi.^(-1).*J./(Oma.*(Oma + De)); 
IParEaa = integral(ParEaa, 0, inf) 

syms oma 
expr = pi^(-1)*(ja*Oma*exp(-Oma/Laa))/(Oma*(Oma + De)); 
int(expr,oma,0,inf) 

を、私はそれが動作を期待、 マイケル

+0

をありがとうございました。しかし、数値シミュレーションでも同じエラーが発生します。象徴的な統合については、私はその機能を代用したくない。 – Farhad

+0

こんにちは、 まだ関連性があると思います。私は数値を調べましたが、JをParEaaに代入する方が良いと思います。このように、関数は1つの変数にのみ依存します。 象徴的なものについては、代わりにしたいのですか? 一般に、「価値」のみを持たせたいのですか、それとも全体の表現をしたいですか? Micha –

+0

Hey、 私はついにMatlabで確認する機会を得ました。私のマシンで次のコードが実行されます: 'Laa = 0.01; ja = 1; De = 0.001; J = @(Oma)ja。* Oma。* exp(-Oma./Laa); ParEaa = @(Oma)pi ^( - 1)。* J(Oma)./(Oma。*(Oma + De)); IParEaa = integral(ParEaa、0、inf) ' –