-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) 值)
  • 增长函数的渐近值
  • 微分函数对应的最大高度
  • 最大高度之前的微分函数的最小高度是

    % 设置变量 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++ 语法。(虽然不正确的 C++ 语法,正如@John 所指出的那样)

我不确定你想用这段代码实现什么:

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 回答