找回密码
 注册
关于网站域名变更的通知
查看: 593|回复: 4
打印 上一主题 下一主题

lsqcurvefit函数

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-7-17 17:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
lsqcurvefit函数中拟合参数的参数精确度可以调整吗,我想让参数在拟合过程中小数点位数少一些,应该更容易得到准确值 ,应该怎么调整
/ C, V+ h2 b/ I

该用户从未签到

2#
发表于 2020-7-17 17:40 | 只看该作者
非线性曲线拟合是已知输入向量xdata和输出向量ydata,并且知道输入与输出的函数关系为ydata=F(x, xdata),但不知道系数向量x。今进行曲线拟合,求x使得输出的如下最小二乘表达式成立:! d6 L) I3 H+ ~0 J! w/ ~3 M1 H$ k
* B* Y+ N, K1 P$ F" l  c
min Σ(F(x,xdatai)-ydatai)^23 I& E' U& z9 I: _

0 @( P' g/ r4 a: y" L; g7 z/ { ( \) E5 ]- q4 {; i3 r
/ _9 u" D* W5 Y0 U
函数 lsqcurvefit
8 Q6 g; W( ]/ D' b9 ]! u3 S' c) a. {  _6 z4 e
格式  x= lsqcurvefit(fun,x0,xdata,ydata)
# I: s6 X; ~2 p0 \! z7 v+ \
3 }5 z, ?- k( x, k2 \( ux = lsqcurvefit(fun,x0,xdata,ydata,lb,ub)
/ {/ R) X9 e& }& N0 h' s1 c# R3 ?% K0 x. w
x = lsqcurvefit(fun,x0,xdata,ydata,lb,ub,options)
' Q5 X5 s8 A3 Y% C9 g4 \7 z, b, v
- C; P7 C  [+ {" X- G1 c- m% S7 I[x,resnorm] = lsqcurvefit(…)
( J/ o, N/ H7 h# q. Q/ l& z2 @) q5 s9 ]+ d+ q
[x,resnorm,residual] = lsqcurvefit(…)
2 z8 @  X4 b$ i* g0 M3 Z# n8 S) U) h4 c/ f" p0 }9 O+ O  r
[x,resnorm,residual,exitflag] =lsqcurvefit(…)9 n% I9 [" {, t
& h2 a/ n* ^+ V9 t& q
[x,resnorm,residual,exitflag,output] =lsqcurvefit(…)
; E/ o) f; M9 }) u1 Z/ K; C
; W) L. c) ~1 r, f4 f$ D[x,resnorm,residual,exitflag,output,lambda]= lsqcurvefit(…)
2 w; V7 }4 `9 ~7 l
9 o& P, C* G) e; a# g6 x[x,resnorm,residual,exitflag,output,lambda,jacobian]=lsqcurvefit(…)$ p6 N7 V* Y( y& Z. [

9 K( N+ \$ ?4 ?3 @参数说明:
) q# n1 b. ?% P  z
1 ^( x, o* j  E5 L3 Mx0为初始解向量;xdata,ydata为满足关系ydata=F(x, xdata)的数据;
8 X1 x) V1 v# I
# Z, l& |2 V3 b* X1 x% alb、ub为解向量的下界和上界lb≤x≤ub,若没有指定界,则lb=[ ],ub=[ ];
+ l- `! }" L! Q6 J: c
7 U- _: K7 o8 K# doptions为指定的优化参数;3 m' A; R! e: O( _! j/ |$ o) e% u

- O( A, r6 R3 ufun为待拟合函数,计算x处拟合函数值,其定义为     function F =myfun(x,xdata)
/ Q( \" A" i: }" L
" K: F6 v. D8 `6 H& Fresnorm=sum ((fun(x,xdata)-ydata).^2),即在x处残差的平方和;
$ ^) U' `0 m6 l' P/ |9 a
* }5 B! I/ w, S: ]3 a. `& n) T8 Oresidual=fun(x,xdata)-ydata,即在x处的残差;
( L" R% z& V& q  P7 Z+ C" ^# x: k' s5 k* Z2 l# \
exitflag为终止迭代的条件;
3 u9 i1 m1 E+ d( T; g. H$ n% G0 H3 x6 w% n' F
output为输出的优化信息;
- C) a. x3 u6 s- a! R# r9 `8 u* Q  C# b
lambda为解x处的Lagrange乘子;
2 e+ B/ I9 \7 c7 d: |( t1 P
  k8 G/ w& v) B+ d2 u8 m5 Ujacobian为解x处拟合函数fun的jacobian矩阵。- M7 P$ X7 n. {" F  ^, H' u0 g8 e
8 y  Q4 x; X  K" A5 P1 C

$ _. X! v8 j# S) [3 w, J, y4 P) _$ O& ]5 R' W
例 求解如下最小二乘非线性拟合问题" Y- @+ w+ [  {( k( F( N! l
% A+ G2 u1 G6 c$ }+ K
已知输入向量xdata和输出向量ydata,且长度都是n,待拟合函数的表达式为" H6 P% ~( X* x9 Y  H5 h  [  M. d' ?8 L

  W  A. T7 ~& Y5 m9 K  Nydata(i)=x(1)-xdata(i)^2+x(2)-sin(xdata(i))+x(3)-xdata^3. n) V5 [/ @7 X; @4 g1 |) ]8 e% s
. `, \# f0 F4 u
4 L- L0 [2 ~( T' ?! Q7 q

: d3 b4 k" E- B即目标函数为min Σ(F(x,xdata(i))-ydata(i))^2
. s$ F4 g' ?! @9 _& k, Z+ Q4 x1 ]
; i+ U: d( z% j0 M: K) s+ r  z5 u其中:F(x,xdata) = x(1)*xdata^2 +x(2)*sin(xdata) + x(3)*xdata^33 Y* e. \% i! T$ r8 j+ ?1 p) h
9 `  x+ h! N  [9 L7 M" e: w. ?
初始解向量为x0=[0.3, 0.4, 0.1],即表达式的 个参数[x(1),x(2),x(3)]。. |4 d0 Z( B( a3 q7 r/ \5 D; |2 K
: g1 _5 O* P- s- H
解:先建立拟合函数文件,并保存为myfun.m
$ r+ S7 A' b* Z/ @* v
0 b% f1 \) J; h# |9 e# P3 v, kfunction F = myfun(x,xdata)
, A- d, r$ N7 x( x/ }- v8 y$ e' e4 O7 E2 y4 }4 n7 Z" g
F = x(1)*xdata.^2 + x(2)*sin(xdata) +x(3)*xdata.^3;
5 ]; ^' z/ C7 ], B* x; B1 Y
6 ^2 z% Z3 ~+ [6 V4 @然后给出数据xdata和ydata
% c- L+ o+ s# O$ E
  }2 M0 B4 B' }" n' u6 _- \>>xdata = [3.6 7.7 9.3 4.1 8.6 2.81.3 7.9 10.0 5.4];
$ `8 m3 z" G4 ~. L5 q, q; V- [; l) c! e# i7 h. p
>>ydata = [16.5 150.6 263.1 24.7208.5 9.9 2.7 163.9 325.0 54.3];
7 p+ A9 t* p6 K" a( I% }5 J8 P
" s5 n( L% T4 _>>x0 = [10, 10, 10];    %初始估计值
" j/ I- c% `$ \2 W
4 O6 }: u( L$ f7 i>>[x,resnorm] =lsqcurvefit(@myfun,x0,xdata,ydata)
$ u1 k  P% m( i/ R& e8 S- L" c" a- w
结果为:
" X' w! S+ e, ~! L; b0 }4 b: N2 p! [9 m4 O# M  D
Optimization terminated successfully:
8 s% q8 Z. x- Y. K( i7 I  b/ R6 J' h9 ?. @; j2 d
Relative function value changing by lessthan OPTIONS.TolFun
( f- T9 l1 d3 U$ n+ }( K# t6 f1 |: ^7 ~
x = 0.2269    0.3385   0.3021) L0 D$ N* n4 _& d9 W4 k1 F, S
( x3 ~0 j6 a7 p* Z$ l- L) v
=>即解出的系数最优估计值8 U/ s, N6 }+ s/ R4 |

' k; H- ]* `7 d) \0 [$ Q/ sresnorm =      6.2950
) x, a- g3 ~; M: n9 m1 k/ [# j, r  t( ?. g: \: p; R6 O8 o
=>在x解值处的目标最小二乘表达式值。即所谓残差。

该用户从未签到

4#
发表于 2020-7-22 09:44 | 只看该作者
一楼正解,我也遇到过
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-6 03:34 , Processed in 0.156250 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表