私はここに画像にある方程式を持っています
y軸がこの方程式で、x軸が時間であるプロットを作成しようとしています。これは単なるベクトルです。私が持っているすべてのイニシャル:
%Initials
Beta=[24 123 117 262 108 45]*10^-5; %pcm
Lambda=[0.0127 0.0317 0.1160 0.3106 1.4006 3.8760]; %1/s
LAMBDA=10^-4 ; %s
W=[ 0.376 -0.0133 -0.0426 -0.153 -0.972 -3.38 -29.5]
Rho=400*10^-5
t=linspace(1,30,7)
これは私が使用しているコードです:
for n=1:7
for j=1:6
S1=Rho*sum(exp(W(n)'.*t)/(W(n)'.*(LAMBDA+(sum(Beta(j).*Lambda(j)./(W(n)+Lambda(j))^2)))))
end
end
semilogy(t,S1,'b','linewidth',2);
そして、S1はあまりにも多くの答えを返します、そして私が理解しているのでそれは7つしか与えないはずです...そして私は一般的にmatlabとコーディングに慣れていないので、答えが明白であるならば私はまだそれを機能させる方法を知りません:D
最初にいくつかのことを明確にしましょう。
(任意の種類の)2Dプロットを実行するには、Matlabに2つのベクトルが必要です。それらは同じ長さでなければなりません。すべてのx座標に1つ。すべてのy座標にもう1つ。
でx座標を取得しt=linspace(1,30,7)
ます。ただし、対応するy座標はありません。
あなたの場合、あなたの公式をの関数として表現するのが最善ですt
。そして、明確にするために合計を分解しましょう。例えば、
function num = oscillation_modes_of_sort(t)
outer_sum = 0;
for j=1:numel(W)
inner_sum = 0;
for i=1:numel(Beta)
inner_sum = inner_sum + Beta(i)*Lambda(i)/(W(j)+Lambda(i))^2;
end
outer_sum = out_sum + exp(W(j)*t)/(W(j)*(LAMBDA+inner_sum));
end
num = Rho * outer_sum;
end
これで、y座標はになりますoscillation_modes_of_sort(t)
。
コードより簡単に作るかどうかは、よりフレンドリーにいずれかの方法がありますW
し、Beta
はるかに長いですが。しかし、将来的にはそれらを実行しましょう。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加