matlab中lsqcurvefit拟合公式问题我在用lsqcurvefit拟合一个多元函数,命令如下:u=[60 60 60 60 6032 38 42 45 50 54 57 60 63.5 68 70 73 76 83 89 95];v=[3 4 5 6 7 4 44 4 4 4 4 4 4 4 4 4 4 4 4 4];x=[2 2 2 2 2 2 2 22 2 2 2 2 2 2 2 2 2 2
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/12 21:03:17
![matlab中lsqcurvefit拟合公式问题我在用lsqcurvefit拟合一个多元函数,命令如下:u=[60 60 60 60 6032 38 42 45 50 54 57 60 63.5 68 70 73 76 83 89 95];v=[3 4 5 6 7 4 44 4 4 4 4 4 4 4 4 4 4 4 4 4];x=[2 2 2 2 2 2 2 22 2 2 2 2 2 2 2 2 2 2](/uploads/image/z/14734061-53-1.jpg?t=matlab%E4%B8%ADlsqcurvefit%E6%8B%9F%E5%90%88%E5%85%AC%E5%BC%8F%E9%97%AE%E9%A2%98%E6%88%91%E5%9C%A8%E7%94%A8lsqcurvefit%E6%8B%9F%E5%90%88%E4%B8%80%E4%B8%AA%E5%A4%9A%E5%85%83%E5%87%BD%E6%95%B0%2C%E5%91%BD%E4%BB%A4%E5%A6%82%E4%B8%8B%EF%BC%9Au%3D%5B60+60+60+60+6032+38+42+45+50+54+57+60+63.5+68+70+73+76+83+89+95%5D%3Bv%3D%5B3+4+5+6+7+4+44+4+4+4+4+4+4+4+4+4+4+4+4+4%5D%3Bx%3D%5B2+2+2+2+2+2+2+22+2+2+2+2+2+2+2+2+2+2)
matlab中lsqcurvefit拟合公式问题我在用lsqcurvefit拟合一个多元函数,命令如下:u=[60 60 60 60 6032 38 42 45 50 54 57 60 63.5 68 70 73 76 83 89 95];v=[3 4 5 6 7 4 44 4 4 4 4 4 4 4 4 4 4 4 4 4];x=[2 2 2 2 2 2 2 22 2 2 2 2 2 2 2 2 2 2
matlab中lsqcurvefit拟合公式问题
我在用lsqcurvefit拟合一个多元函数,命令如下:
u=[60 60 60 60 6032 38 42 45 50 54 57 60 63.5 68 70 73 76 83 89 95];
v=[3 4 5 6 7 4 44 4 4 4 4 4 4 4 4 4 4 4 4 4];
x=[2 2 2 2 2 2 2 22 2 2 2 2 2 2 2 2 2 2 2 2];
y=[205 205 205205 205 345 345 345 345 345 345 345 345 345 345 345 345 345 345 345 345];
z=[0.4 0.7 0.9 11.08 0.35 0.55 0.67 0.78 1 1.18 1.3 1.5 1.65 1.9 2.05 2.3 2.55 3.2 3.85 4.5];
f=@(p,x)(((p(1)*x(1,:)).^(4)-(p(1)*x(1,:)-p(2)*x(2,:)-p(3)*x(3,:)).^(4))*x(4,:)*pi*((p(1)*x(1,:)).^(-1))/32);
[p,r]=lsqcurvefit(f,[00 0 0],[u;v;x;y],z)
但是计算报错,
matlab中lsqcurvefit拟合公式问题我在用lsqcurvefit拟合一个多元函数,命令如下:u=[60 60 60 60 6032 38 42 45 50 54 57 60 63.5 68 70 73 76 83 89 95];v=[3 4 5 6 7 4 44 4 4 4 4 4 4 4 4 4 4 4 4 4];x=[2 2 2 2 2 2 2 22 2 2 2 2 2 2 2 2 2 2
主要错误没有处理变量数组的关系,你只有把u,v,x,y看成一个变量数组X就ok了.所以将代码改为如下,就行了.
u=[.]';v=[.]';x=[.]';y=[.]';z=[.]';
X=[u v x y];
fun=@(p,x)(((p(1)*x(:,1)).^(4)-(p(1)*x(:,1)-p(2)*x(:,2)-p(3)*x(:,3)).^(4)).*x(:,4)*pi.*((p(1)*x(:,1)).^(-1))/32);
%X0=rand(3,1)*(-0.02)
X0=[ -0.00273 -0.000235 -0.0178]';
[p,r]=lsqcurvefit(fun,X0,X,z);