使用matlab lsqcurvefit的问题?

 我来答
淺於生
推荐于2019-09-28 · TA获得超过5141个赞
知道小有建树答主
回答量:50
采纳率:14%
帮助的人:7119
展开全部

非线性曲线拟合是已知输入向量xdata和输出向量ydata,并且知道输入与输出的函数关系为ydata=F(x, xdata),但不知道系数向量x。今进行曲线拟合,求x使得输出的如下最小二乘表达式成立。

非线性曲线拟合是已知输入向量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 = lsqcurvefit(fun,x0,xdata,ydata,lb,ub,options)

[x,resnorm] = lsqcurvefit(…)

[x,resnorm,residual] = lsqcurvefit(…)

[x,resnorm,residual,exitflag] = lsqcurvefit(…)

[x,resnorm,residual,exitflag,output] = lsqcurvefit(…)

[x,resnorm,residual,exitflag,output,lambda] = lsqcurvefit(…)

[x,resnorm,residual,exitflag,output,lambda,jacobian] =lsqcurvefit(…)

参数说明:

x0为初始解向量;xdata,ydata为满足关系ydata=F(x, xdata)的数据;

lb、ub为解向量的下界和上界lb≤x≤ub,若没有指定界,则lb=[ ],ub=[ ];

options为指定的优化参数;

fun为待拟合函数,计算x处拟合函数值,其定义为     function F = myfun(x,xdata)resnorm=sum ((fun(x,xdata)-ydata).^2),即在x处残差的平方和;

residual=fun(x,xdata)-ydata,即在x处的残差;

exitflag为终止迭代的条件;

output为输出的优化信息;

lambda为解x处的Lagrange乘子;

jacobian为解x处拟合函数fun的jacobian矩阵。


活宝逗比先生
2018-01-02 · TA获得超过4781个赞
知道小有建树答主
回答量:35
采纳率:0%
帮助的人:4614
展开全部

function y=yuww(x,xd)                                  %  保存为yuww.m 文件,反正不要是fit

y=50*x(1)./(x(1)-x(2))*(exp(-x(2)*xd)-exp(-x(1)*xd));

--------------------------------------------------------------------------------------

运行以下:

clear;clc

x=1:31;

y=[1 1 8 14 30 11 8 7 17 11 5 4 0 8 7 2 4 2 5 2 1 6 2 4 5 10 1 3 3 0 6];

c0=[2,0.1];    %初始值

c=lsqcurvefit('yuww',c0,x,y)

plot(x,y,'r*-')

hold on

plot(x,yuww(c,x))

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式