作业帮 > 综合 > 作业

Matlab用自定义函数拟合函数

来源:学生作业帮 编辑:百度作业网作业帮 分类:综合作业 时间:2024/05/10 06:14:30
Matlab用自定义函数拟合函数
自定义函数function F = myfun(a,x),形式如下:
F=(1-0.1/(1+0.1*((1-a(2)).^2/(4*a(2))+(x-a(2)).^2/(4*a(2)*x)+(x-a(3)).^2/(4*a(3)*x))))*a(1)
用[x,resnorm] = lsqcurvefit(@myfun,x0,x,y)进行拟合时,提示维数Fun函数值与Ydata不符.后检查自定义函数时发现,即使预先给定a矩阵三个数,同时给定一个1x8的x矩阵,Fun函数值也只是一个,而不是8个.拿线性函数开始试,一点一点添加式子长度,鼓捣了一下午后发现,0.1乘的括号里边相加的三个数中,常数那项只要添加一个x进去,函数值就是8个,否则就是一个.脑袋把墙撞穿了也没想明白这是什么情况,叩首拜谢了.我只有20个金币,倾家荡产请教了.
Matlab用自定义函数拟合函数
常数是一维的,后面乘个
ones(m,1)
试试(m自已定)