用matlab对非线性函数中的参数进行拟合.我的公式是这样的:y=[a*(t^2-e*t^2)+b*(2-t^2+e*t^2)*T1-(1-t*e-t^2+e*t^2)T2]/t*e里面的e、t和y都是数组,T1为已知标量待输入,T2也是已知标量待输入,a、b是这个已知公
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/24 01:51:43
用matlab对非线性函数中的参数进行拟合.我的公式是这样的:y=[a*(t^2-e*t^2)+b*(2-t^2+e*t^2)*T1-(1-t*e-t^2+e*t^2)T2]/t*e里面的e、t和y都是数组,T1为已知标量待输入,T2也是已知标量待输入,a、b是这个已知公
用matlab对非线性函数中的参数进行拟合.
我的公式是这样的:y=[a*(t^2-e*t^2)+b*(2-t^2+e*t^2)*T1-(1-t*e-t^2+e*t^2)T2]/t*e
里面的e、t和y都是数组,T1为已知标量待输入,T2也是已知标量待输入,a、b是这个已知公式里需要优化的参数,想请教各位如果我想用lsqcurvefit这个函数或者其他函数或者DIY编码该如何进行编程,因为就目前而言我还处于菜鸟阶段,感激不尽!
诶~~~我用的是lsqcurvefit这个函数,可是我不懂当我的输入除了x和y以外还有其他的时候我该如何设置,以下是我自己按照书上的格式模仿的一段,大家见笑了.
function Ts=L(x,xdata)
Ts=[x(1)*(xdata.^2*(1-e))+x(2)*(2-xdata.^2*(1-e))*T6-(1-xdata*e-xdata.^2+e*xdata.^2)*Ta]/xdata*e;
然后命令行里输入
T6=0.5;
>> Ta=0.7;
>> xdata=[1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8];
>> Ts=[2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9];
>> e=[1 2 3 4 5 6 7 8];
>> x0=[10,10];
>> x=lsqcurvefit(@fun,x0,xdata,Ts)
:'(:'(我能想出的就只有这么多了,求赐教~~~
用matlab对非线性函数中的参数进行拟合.我的公式是这样的:y=[a*(t^2-e*t^2)+b*(2-t^2+e*t^2)*T1-(1-t*e-t^2+e*t^2)T2]/t*e里面的e、t和y都是数组,T1为已知标量待输入,T2也是已知标量待输入,a、b是这个已知公
这个其实就是一个简单的数据拟合,用不着那么复杂,使用下面的公式就行了
t=[1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8]';
y=[2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9]';
e=[1 2 3 4 5 6 7 8]';
T6=0.5;Ta=0.7;
p=[t.^2.*(1-e) (2-t.^2.*(1-e))*T6]\(y./(t.*e)+(1-t.*e-t.^2+e.*t.^2)*Ta);
a=p(1)
b=p(2)
祝你学习愉快