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

Matlab之Gauss-Newton法

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
这一题就是已知初始点,然后求某一点到三个圆的距离的和的最小值。使用的就是大名鼎鼎的Gauss-Newton方法。这里要求雅克比行列式,由函数 jacobian可以求出。所以这就减少了许多不必要的麻烦。
5 s. O% K# Q* c
) y) m- c! \- A1 B1 I  i' z% Y

代码如下:         ) P' R. K5 e4 }3 R+ W2 x! ~+ l


: Q1 k0 x; o8 Y  n/ y8 }8 V8 @
  • / t' E6 j5 Z$ ~; J7 S: |( N

    0 A! A2 V* a1 d( \* R/ X* ?9 z% using Gauss-Newton method: n# ]/ u; Z( u0 \* N
      b3 e2 c. d6 j% p9 F% p4 w4 R0 u

  • 4 C' ^4 E3 z# n  L( n

    $ B$ D8 C7 b6 U& X' m8 p% initial point(0,0)
    3 a: d7 i6 N0 T0 t

    % {: L1 x; A5 V; Q; }

  • : d0 I: z, U* g) o6 s

    / f! n0 u8 j9 P% g! I0 f" D% 1、with circul point (0,1),(1,1),(0,-1)
    $ Z" j5 M: \3 X3 }" H

    1 R8 q* o, d" f2 a7 |' W) h

  • , x# o2 I8 y, s- V8 Q

    # f" p: j- b4 J2 I* \1 P% 2、with circul point (-1,0),(1,1),(1,-1)
    * r2 t) Z9 {% V# w

    8 _8 C1 C6 F. D  p. }1 W# ^

  • - k$ U0 w' u7 L  i' f( _  ^
    8 s1 ]: n6 k7 J9 V/ `9 q2 q: p7 n5 y
    % its radius is 1( T) \! |+ r& Z4 e$ S
    - b. v; l/ \) D- j4 K' E
  • 5 ^! t' p0 G4 _& B& `, l
    & H: }5 b0 s- E5 n$ |( X' }1 q
    % output :the sum of distance is the minist  D' ^- S; ~( r% |2 w  C" `) _
    7 D1 k6 l, q7 Y

  • ( @4 \+ s( F; V8 \6 O6 y- \7 J! j
    $ Z- ~6 T- b9 o* l5 y
    function page_237_1
    & N: D! z9 r) v1 ~3 h' j) G, N4 M* j/ ~
    0 b5 ]/ P/ I  ]- h
  • $ A' S7 [1 ]  x9 b5 d) j

    1 j+ ?) |9 f2 J( |; Wformat long- S" K0 B3 {) O, Q( G

    ' F* R, X% K& L& q* J

  • ( K2 J  ~: O9 i2 L  }. B) H7 E

    % ?1 u3 h! H" D) n8 g" osyms x y; k0 d7 D4 H! B! Y7 O! `

    & D! Z3 F- _; l, R! s

  • % i7 {1 I1 p6 N9 }

    % m3 U1 H0 M' r0 p  {8 z4 B( @r1      = sqrt(x^2+(y-1)^2) - 1;0 y+ V- z) @/ ?) P5 `
    # P1 I6 _, s. i( L

  • ' \  @$ t+ Y, a' `
    ) ~7 ~( z) {5 S" M' v
    r2      = sqrt((x-1)^2+(y-1)^2) - 1;" F6 T& j/ o7 B7 G& w9 N

    * L5 k) Z0 Z+ f, a
  • / d  R8 l6 L# t+ Z  O

    ( u" ]- T) j+ w7 U5 fr3      = sqrt(x^2+(y+1)^2) - 1;
    4 i% N: g, H1 @& P
    $ x- x! u, Z7 F8 n, \

  • : {. F! P- x+ Z6 S: M
    2 ^$ U) I/ j. |3 g# }4 C
    rxk     = [r1;r2;r3];
    8 g9 j( V/ b* k. Q
    6 M1 _8 W) M  O/ a
  • / U  n! f. F: p: r: X

    ! p; T* w$ w: j3 D) g" BDrx     = jacobian([r1;r2;r3]);. D' E. `- e7 i2 }% x+ S

    # C3 X7 F' V4 y, E' V

  • % a# W5 i' r: @5 k# ?2 g1 [

    ! u# C$ B+ Y; }DrxT    = Drx';% o/ {" X2 x& Y
    0 `9 x/ A; y) _$ C0 A6 C8 O+ B

  • ! d/ y4 x1 J) Y- ?/ N

    $ Q2 C. ?* J$ B& Z: D) S, n5 NDrxTdrx = DrxT*Drx;                 %Dr(xk)TDr(xk)* i( G% T7 E6 f% m

    + l  b! y: m# j' O- Y

  • ; k- g  {& |) N) w4 j
    % v6 S6 K9 E- p. b. t
    DrxTrxk = -1*DrxT*rxk;              %Dr(xk)Tr(xk)0 C/ l$ S3 x, B6 w5 P3 l/ f8 o

    $ f6 n: |1 j+ n& s" A

  • - g! f4 d$ h: v2 V
    8 D/ R! ]. l1 G) O! p! j
    %vk     = DrxTrxk\DrxTdrx;9 {; N. ?4 \7 x

    ( [! _7 W3 q6 m6 z& I7 s- w0 J+ p
  • ( l9 i7 N! g+ R  _, }

    # S$ H. W0 s' [0 u" DDrxTdrx_= subs(DrxTdrx,{x,y},{0,0});* d6 m" o0 f- n2 \
    " }/ B* z1 v1 B  y9 s( c' j$ J

  • 8 e, J! I# E* e4 v# l' G; u, }+ \% K/ d

    " Z4 ?6 q6 t# H9 c. }; {1 i* n: cDrxTrxk_= subs(DrxTrxk,{x,y},{0,0});/ Y& B9 p9 \' w. O8 W
    ( }& g+ F5 a9 t4 @  X
  • , `2 V3 D/ l, q7 m" J
    : G+ K' r; @  L" K
    xy      = zeros(2,1);
    + ?: s5 r- r  R, D: x/ }8 X

    , U, P2 C2 J. `7 h9 a; m: g3 m

  • ( F9 J  F( r/ V. N4 v

    & S* Q9 C/ T& o8 j( N  Ufor k = 1:15! G% k7 K% `5 _" ?! Q' e7 w
    8 r1 M7 A# B* O8 U

  • ( ?3 K$ B# I5 m0 C0 C- v! x
    * o& V. ^' u5 g9 l5 L
        v       = DrxTdrx_\DrxTrxk_;
    % S( f" @% c) a6 e$ |" k

    9 R; h3 M+ u0 M# ?% |6 }- L
  • 7 I8 \: x. [& h7 C. L: X- n7 {

      j0 q  `( r" I# e    xy      = xy+v;      ; h) S; T5 O. E

    2 f6 T& ~/ O( [3 T9 U" _
  •   C: G9 W! \4 A( e* q

    7 `" A+ ~- a( a! L7 b    DrxTdrx_= subs(DrxTdrx,{x,y},{xy(1),xy(2)});
    # ~1 R/ O$ q4 t7 Q2 a
    * M8 H+ |/ h8 a! D6 q- r  O
  • $ n8 @: c& K/ P
    , d* }6 }% r, d5 H. k0 L
        DrxTrxk_= subs(DrxTrxk,{x,y},{xy(1),xy(2)});
    6 [4 x1 F/ I& R, x/ R/ }
    8 s: S* @* I' ~6 m/ ^! K

  • 3 |6 p' S/ O& ]1 w7 P. e) w, E; _

    % }$ d3 k9 k& z; ^  {7 Bend, |" o7 |: ^6 ?# C9 a4 {& X/ g8 {
    # S: G3 G( T4 }. D& L6 l
  • . ?0 p6 m4 D) Y8 g4 D8 X
    * c1 t2 o+ g5 Y" H$ h- }% s6 l- x
    disp('a with circular initial vector(0,0),Centers(0,1), (1,1), (0,?1)and all radii 1,the point is');$ @( I4 y/ S% L$ C$ a
    + R  n2 }+ h! ]5 e% z) [  _
  • 6 E" o- s* h% X1 J# j6 }

    # W* i+ s* f8 x; h* U- \vpa(xy,6)8 w& U" O9 V- B/ z# J

    ! f# Z# `; N# X+ n5 F5 L- D
  • 5 B* c; {3 x; P" g3 R5 v3 Y6 [

    1 G$ T/ S& c( z/ K) T1 d% }

( C2 {0 U3 f6 a: S; t( f- J* }$ x

该用户从未签到

2#
发表于 2020-12-18 11:13 | 只看该作者
Matlab之Gauss-Newton法
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-1 02:12 , Processed in 0.125000 second(s), 23 queries , Gzip On.

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

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

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