lsqnonlin函数_matlab非线性最小二乘函数

函数语法

x = lsqnonlin(fun,x0)
函数用于:

解决非线性最小二乘(非线性数据拟合)问题

解决非线性最小二乘曲线拟合问题的形式
在这里插入图片描述
变量x的约束上下限为ub和lb,
在这里插入图片描述
x = lsqnonlin(fun,x0)从x0点开始,找到fun中描述的函数的最小平方和。函数fun应该返回一个向量(或数组),而不是值的平方和。(该算法隐式地计算了fun(x)元素的平方和。)

举例:

从指数衰减模型和噪声中生成数据。模型是
在这里插入图片描述
t在0~3之间取值
问题是:给定数据(d, y),找出最适合数据的指数衰减率。
创建一个匿名函数,该函数接受指数衰减率r的值,并返回与该衰减率和数据的模型不同的向量。

fun = @(r)exp(-d*r)-y;

求出最优衰减率的值。任意选择一个初始值x0 = 4

x0 = 4;
x = lsqnonlin(fun,x0)

局部最小值
lsqnonlin停止了,因为相对于其初始值的平方和的最终变化小于函数容差的值。

x = 1.2645

绘制数据和最佳拟合指数曲线

plot(d,y,'ko',d,exp(-x*d),'b-')
legend('Data','Best fit')
xlabel('t')
ylabel('exp(-tx)')

在这里插入图片描述

  • 8
    点赞
  • 58
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值