matlab 曲线拟合问题我的实验数据t=[0 5 10 15 30 35 45 60 75 90 120 150 210 300 420 600 840 1440 2280 6500] u=[12.16 12.2 12.22 12.23 12.24 12.25 12.26 12.27 12.28 12.29 12.3 12.31 12.32 12.33 12.34 12.35 12.36 12.37 12.38 12.39]画出来
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/29 12:24:09
matlab 曲线拟合问题我的实验数据t=[0 5 10 15 30 35 45 60 75 90 120 150 210 300 420 600 840 1440 2280 6500] u=[12.16 12.2 12.22 12.23 12.24 12.25 12.26 12.27 12.28 12.29 12.3 12.31 12.32 12.33 12.34 12.35 12.36 12.37 12.38 12.39]画出来
matlab 曲线拟合问题
我的实验数据t=[0 5 10 15 30 35 45 60 75 90 120 150 210 300 420 600 840 1440 2280 6500] u=[12.16 12.2 12.22 12.23 12.24 12.25 12.26 12.27 12.28 12.29 12.3 12.31 12.32 12.33 12.34 12.35 12.36 12.37 12.38 12.39]画出来的曲线是指数大概是指数形式的,想拟合成 u = a*exp(-b*t) + c*exp(-d*t)+e形式或者一介u=a+b*exp(-b*t),
matlab 曲线拟合问题我的实验数据t=[0 5 10 15 30 35 45 60 75 90 120 150 210 300 420 600 840 1440 2280 6500] u=[12.16 12.2 12.22 12.23 12.24 12.25 12.26 12.27 12.28 12.29 12.3 12.31 12.32 12.33 12.34 12.35 12.36 12.37 12.38 12.39]画出来
%先编写函数文件,内容如下,再保存为nihe.m
function f=nihe(p,t)
f= p(1).*exp(-p(2).*t) + p(3).*exp(-p(4).*t)+p(5);
主程序如下
t=[0 5 10 15 30 35 45 60 75 90 120 150 210 300 420 600 840 1440 2280 6500];
u=[12.16 12.2 12.22 12.23 12.24 12.25 12.26 12.27 12.28 ...
12.29 12.3 12.31 12.32 12.33 12.34 12.35 12.36 12.37 12.38 12.39];
n=length(t);
%u = a*exp(-b*t) + c*exp(-d*t)+e 含有5个参数
startingVals = ones(1,5); %所以startingVals含有5个参数
[p,resnorm]=lsqcurvefit(@nihe,startingVals,t,u); %nihe调用,nihe之前应该加@
%resnorm代表拟合值与真实值的差值最小平方和
sprintf('u = %f*exp(-%f*t) %f*exp(-%f*t)+%f',p(1),p(2),p(3),p(4),p(5))
y1=nihe(p,t); %调用nihe计算拟合的y值
semilogx(t,y1,t,u,'r+');