-3

私は matlab を使用しようとしている生物学の学生です。そのため、私の数学的および情報的知識は限られています。ただし、次のコードを取得するためにいくつかのコードを作成しようとしました。

すべての個人の成長を表す関数 y=f(t) があります。y=f(t) には 8 つの変数があります。これらの変数は一定ですが、個体ごとに異なります。速度曲線は、y=f(t) 関数を微分することによって得られます。成長曲線と速度曲線の両方の写真を以下に示します。赤い曲線は成長曲線で、青い曲線は速度曲線です。

関数は y(t)= m1*(1-1/(1+(m2*(m0+m8))^m5+(m3*(m0+m8))^m6+(m4*(m0+m8)) で表されます。 )^m7))。ここで t は独立変数です。m1 から m8 は、個人ごとに一定であるが個人によって異なる変数です。

私が手に入れたいのは

  • 成長関数の変曲点 (t 値と f(t) 値の両方)
  • 成長関数の漸近値
  • 微分関数の対応する最大の高さ
  • 最大高さの前の微分関数の最小高さ

    % set variabelen syms t; m1=xlsread('jongens0','A1:A10'); m2=xlsread('jongens0','B1:B10'); m3=xlsread('jongens0','C1:C10'); m4=xlsread('jongens0','D1:D10'); m5=xlsread('jongens0','E1:E10'); m6=xlsread('jongens0','F1:F10'); m7=xlsread('jongens0','G1:G10'); m8=xlsread('jongens0','H1:H10');

    % i=1:10 のループを設定

    % 関数と微分関数 y(i)=m1(i) を定義します。(1-1./(1+(m2(i). (t+m8(i)))).^m5(i)+(m3(i). (t+m8(i))).^m6( i)+(m4(i). (t+m8(i))).^m7(i))); dy(i)=diff(y(i))./dt;

    % 情報抽出 a=max(dy(i)); b=fminsearch(dy(i),x0,[0,a]); c=max(y(i)); d=リミット(y(i),inf); e=inflect_pt((y(i)));

    A = [abcde]

    % Excelに情報を書き込む xlswrite('output0',A)

4

1 に答える 1

0

間違った MATLAB 構文を使用しています。

for(i=0,t++,i<50)

MATLAB よりも C++ 構文に近いです。(@Johnが指摘したように、正しいC++構文ではありませんが)

このコードで何を達成しようとしているのかわかりません:

fori=1:50,;
i;
end; 

しかし、それは正しくありません。,後はそこ1:50にあるはずがありません。行;の最後にも、 の後にも必要ありません。(出力を抑制するために使用され、これらの行は何も生成しません) for i=1:50end;

達成したいことを正確に伝えるのは難しいですが、次のようなものが近いと思います。

y = zeros(size(t,1),50);

for i = 1:50
  y(i,:) = m1(i).(1-1./(1+(m2(i).(t+m8(i))).^m5(i) ...
      +(m3(i).(t+m8(i))).^m6(i)+(m4(i).(t+m8(i))).^m7(i)));
end
于 2013-06-10T11:11:16.550 に答える