作业帮 > 综合 > 作业

matlab中的问题 为什么要把它写成这样:cdata=1e-03*[4.54,4.99,5.35,5.65,5.90,

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/05/13 07:25:12
matlab中的问题
为什么要把它写成这样:cdata=1e-03*[4.54,4.99,5.35,5.65,5.90,
6.10,6.26,6.39,6.50,6.59];
而不是写成:cdata=[4.54,4.99,5.35,5.65,5.90,
6.10,6.26,6.39,6.50,6.59];
问题来源于这个代码:
例 用下面一组数据拟合 中的参数a,b,k
t 100 200 300 400 500 600 700 800 900 1000
c 4.54 4.99 5.35 5.65 5.90 6.10 6.26 6.39 6.50 6.59
解法1.用命令lsqcurvefit matabc
1)编写M-文件 curvefun1.m
function f=curvefun1(x,tdata)
f=x(1)+x(2)*exp(-0.02*x(3)*tdata) %其中 x(1)=a; x(2)=b;x(3)=k;
2)输入命令
tdata=100:100:1000
cdata=1e-03*[4.54,4.99,5.35,5.65,5.90,6.10,6.26,6.39,
6.50,6.59]; matlab
x0=[0.2,0.05,0.05];
x=lsqcurvefit ('curvefun1',x0,tdata,cdata)
f= curvefun1(x,tdata)
3)运算结果为:
f =0.0043 0.0051 0.0056 0.0059 0.0061
0.0062 0.0062 0.0063 0.0063 0.0063
x = 0.0063 -0.0034 0.2542
4)结论:a=0.0063,b=-0.0034,k=0.2542 matlab
1e-03是十的负三次方的意思,也就相当于后面数组的加权,即数组里的每个数乘以10^(-3).