1

Matlab で加算および乗算される複数のベッセル関数で構成される関数の根をプロットしようとしています。式は Jm(omega)*Ik(omega)+Im(omega)*Jk(omega) で、Jm は第 1 種 m 次のベッセル関数 (besselj) です。Im は次数 m の第 1 種ベッセル関数 (ベッセル) です。各モード m=o,1,2,... および n=1,2,3... 周波数ω(mn) は、リストされた方程式の対応する根です。m=0,1,2 n-1,2,3,4. 12 根の方程式を解く必要があります。私はMatlabが初めてで、これは私のリーグから少し外れています。これまでのところ、このコードはありますが、スクリプトに変数 omega が必要かどうかはわかりませんでした。この件に関する他の人の質問も見ましたが、このようなものは見当たりませんでした。私が見たプロットは私のようには見えず、おそらく間違っていることがわかります.

m=(0:2); k=(1:3); n=(1:4);
Jm=besselj(m,n');
Ik=besseli(k,n');
Jk=besselj(k,n');
Im=besseli(m,n');
g=Jm.*Ik+Im.*Jk
plot(g)
4

1 に答える 1

0

プロット

besselj2番目のパラメーターとして呼び出すものをbesseli取るomegaので、関数をプロットするには、次のようなものを試してください

m=0; k=1; omega=0:0.02:10;
Jm=besselj(m,omega);
Ik=besseli(k,omega);
Jk=besselj(k,omega);
Im=besseli(m,omega);
g=Jm.*Ik+Im.*Jk;
plot(omega,g);
hold all;
plot(omega,0,'k');
axis([min(omega) max(omega) -100 100]);

これはm=1, k=1、最初のゼロが約 3.2、6.3、および 9.4 であることを示しています。

スクリーンショット

数値的に根を見つける

Cheery によってリンクされた MatlabCentral ファイルで のルートが決定される方法と同様に、関数にハレー法を実装できます。gbesselj

于 2012-02-18T14:01:37.097 に答える