这个b(1).和b(2).实在理解不了,求求大神解答!
解决了
fun=inline('b(1)./(1+(b(1)/82.99-1).*exp(-b(2).*t))','b','t');
你把相应的一行替换成我这一行就行了。还是维度造成的点乘的问题。有的地方需要点乘,有的地方不需要
b(1),b(2)指的是你的矩阵或者数组内部的值,那个店应该是点除的意思吧‘./’这样理解吧。
你看看你的报错,我理解应该是你的函数维度不对。
这是整段
clear all
clc
t=0:39; %令1970年为初始年
x=[82.99 85.22 87.17 89.21 90.85 92.42 93.71 94.97 96.25 97.54 98.70 100.07 101.65 103.00 104.35 105.885 107.50 109.30 111.02 112.70 114.33 115.82 117.17 118.51 119.85 121.12 122.38 123.62 124.76 125.78 126.74 127.62 128.45 129.22 129.98 130.75 131.44 132.12 132.80 133.45 134.09 134.91 135.92 136.72 137.64 138.32];
syms c d;
eqns=[c/(1+(c/82.99-1)*exp(-5*d))==92.42,c/(1+(c/82.99-1)*exp(-15*d))==105.85];
vars=[c,d];
[solu,solv]=solve(eqns,vars) %求初始参数
b0=[119.9759,0.0804]; %初始参数值
fun=inline('b(1)/(1+(b(1)/82.99-1)*exp(-b(2)*t))','b','t');
[b1,r1,j1]=nlinfit(t,x,fun,b0)