matlab最小二乘函数,Matlab最小二乘法 函数 lsqcurvefit   nlinfit

本文介绍了在Matlab中使用lsqcurvefit和nlinfit函数进行非线性曲线拟合的方法。通过示例详细解释了如何设置初始解向量、拟合函数及数据,以找到最佳拟合参数,从而解决非线性表达式的拟合问题。同时提到了对初值敏感和复杂表达式拟合的注意事项,并推荐了自编的优化函数作为替代方案。
摘要由CSDN通过智能技术生成

clear;clc

x0=[-2 -1.7 -1.4 -1.1 -0.8 -0.5 -0.2 0.1 0.4 0.7 1 1.3 1.6 1.9 2.2

2.5 2.8 3.1 3.4 3.7 4.0 4.3 4.6 4.9];

y0=[0.10289 0.11741 0.13158 0.14483 0.15656 0.16622 0.17332 0.1775

0.17853 0.17635 0.17109 0.16302 0.15255 0.1402 0.12655 0.11219

0.09768 0.08353 0.07015 0.05786 0.04687 0.03729 0.02914

0.02236];

f=@(a,x)1/(sqrt(2*pi)*a(1))*exp(-(x-a(2)).^2/(2*a(1)^2));

a=lsqcurvefit(f,[2,2],x0,y0)

x1=-2:0.1:5;

f1=1/(sqrt(2*pi)*a(1))*exp(-(x1-a(2)).^2/(2*a(1)^2));

plot(x0,y0,x1,f1,'*r')

非线性曲线拟合是已知输入向量xdata和输出向量ydata,并且知道输入与输出的函数关系为ydata=F(x,

xdata),但不知道系数向量x。今进行曲线拟合,求x使得输出的如下最小二乘表达式成立:

min Σ(F(x,xdatai)-ydatai)^2

函数 lsqcurvefit

格式 x = lsqcurvefit(fun,x0,xdata,ydata)

x = lsqcurvefit(fun,x0,xdata,ydata,lb,ub)

x = lsqcur

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值