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

Matlab之Gauss-Newton法

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
这一题就是已知初始点,然后求某一点到三个圆的距离的和的最小值。使用的就是大名鼎鼎的Gauss-Newton方法。这里要求雅克比行列式,由函数 jacobian可以求出。所以这就减少了许多不必要的麻烦。 . u! b# A3 K' p0 X' P6 J8 u

  q) i: ~) A0 w8 S  x% E4 m

代码如下:         : t5 D# R8 y) `" @

1 |5 P# L# r& @) X

  • 9 \# i, k; f" N% l( J0 f7 r1 y

    8 B! u. [% S+ A# i# r: j3 e% using Gauss-Newton method
    . _/ }6 U, H; A5 }: Z

    / z& V2 d- L, C% C8 I9 s
  • & V: _- S* S3 _8 u6 v

    8 V. q  U* L+ K" U% initial point(0,0)! N; ?6 W' H# v+ l# v
    : P/ x' H+ F4 K: i. w
  • ! O$ M$ Y& a, N
    . ]( u8 F: @4 _. P
    % 1、with circul point (0,1),(1,1),(0,-1)
    , Z) [3 K% @4 T% g5 a
    " X$ B8 f8 U* \7 F

  • 9 Q: N- p1 B6 s; x: [5 r
    7 |+ H9 o- h( x. A7 f9 S8 u% ?! J
    % 2、with circul point (-1,0),(1,1),(1,-1)
    ; }7 i5 Y) o' T

    $ \, ~/ a5 d1 `3 H; D
  • " C" V' J: w5 X: J/ `7 e

    ' Z2 i% s6 V9 S* ^% its radius is 1
    7 q( E: w$ q# H% h) i5 f

    ! g* ?; h- f1 K  R
  • & [3 A0 E0 g$ X4 R" q

    " S6 Q! u" E' G% ], \9 i; w% output :the sum of distance is the minist* I: q7 N, s( o  j& Q6 I

    : x  ?4 {0 K8 V3 [  \

  • % W. Y7 o$ I% ^

    . j- @2 a) K+ x  u5 lfunction page_237_1
    : q) o, M( Y4 x2 K( ~$ ?
    ; I; h4 a7 b5 {5 [! `1 ~

  • 6 M9 o8 a8 l% H) N- ^4 T- X
    ; T: ]5 s5 j) Q1 V( S* t& U8 R; ~- s
    format long
    0 t+ w% N6 N. R7 s- d

    ( O% ~) Z4 W- [2 b+ A
  • 9 C9 R+ Z, P# b& I6 H! I) Y

    3 Z/ T9 b' p2 E9 a' y8 x/ Vsyms x y
    + ~" e0 c. @# y7 R5 w

    ( S, W$ e6 x# d& N) j
  • * U3 {& c& j: e7 p  p) r
    ; Q' ]5 o3 R* D
    r1      = sqrt(x^2+(y-1)^2) - 1;4 z4 G- C! I1 Q8 V, F& C/ B' j! G
    2 G! q+ j. a( s6 }& }0 |

  • ( p' Z( R& S4 J( U

    5 r6 e1 q& R0 H& Lr2      = sqrt((x-1)^2+(y-1)^2) - 1;
    + h1 F( |- `; o8 F- ?( F/ y

    ; q2 ~: r" p% n) p8 w

  • 9 A1 y+ \, T7 i- m" S; F7 o

    , q# k: ~) P5 |4 G. b- }r3      = sqrt(x^2+(y+1)^2) - 1;! S" |# V+ _' O1 y. C

    & c: o, X% i- Q; ~

  • 1 S( p( z8 u: ^) _

    # F# L1 ~/ `* B7 Orxk     = [r1;r2;r3];
    ( s- }0 F) Y9 F% f) u

    8 H0 Z& r1 Y7 t% a

  • 0 x' y$ ~" X( [

    5 Z# u" X$ B! @. r- hDrx     = jacobian([r1;r2;r3]);* `1 s. q' `- t2 o1 F: f
    9 w% X6 r+ ~5 N4 _- L$ [1 ]$ @
  • $ t- d& Q! g, J* @

    1 @4 J) T4 @0 b" p/ ^9 I% q: {; oDrxT    = Drx';
    ( K8 K: }; o! X
      T* q& `$ k/ C* K1 V' V; @

  • 1 ?6 i) W9 \+ C) _  m

    9 r  O$ w5 f) U! }, ADrxTdrx = DrxT*Drx;                 %Dr(xk)TDr(xk)
    6 M* y8 Q# d" }0 D
    ' J6 ]$ B: B2 T" ~& B3 P, H" W; S
  • - r6 o2 [# h; D

    , t$ @: w2 g  ]* h1 f1 VDrxTrxk = -1*DrxT*rxk;              %Dr(xk)Tr(xk)
    6 v3 `4 W! z# N
    + _. `* R3 @# f9 v9 @! }  L' P
  • * l1 n4 z/ G' s  a

    & i, m/ t4 H' `, y5 o# e%vk     = DrxTrxk\DrxTdrx;6 n0 B, S. o" V
    - {& n* r9 ]7 K* T0 W/ q0 B. c! `# z

  • 9 s  F/ P/ E  A# v4 l- @/ H9 |

    8 r2 R( ], h, s7 r  |+ ADrxTdrx_= subs(DrxTdrx,{x,y},{0,0});0 R0 m4 Z, o# X; D) [
    3 w9 T6 g5 E6 p0 _" f) \: p7 m+ a3 L9 O
  • ) [6 x% f, {. o8 n2 I9 |* ?
    " E# x0 d" ^1 L* R% s$ h" [1 m! g
    DrxTrxk_= subs(DrxTrxk,{x,y},{0,0});0 F" I2 U5 f8 G& V0 r9 b3 Z* ?

    # }+ _$ ]& U: T7 R1 O# }5 a! s
  • " `+ c" h. X" Y2 {6 ^
    / M$ U; L/ {, A; j# T  W' U5 [( R
    xy      = zeros(2,1);
    8 V4 R4 R% A( l6 o; g! T% c* n: e
    1 F; F2 E/ M0 {6 G
  • 4 K9 w+ Q& `  x& w& A

    8 R# [1 R/ l6 o9 ^7 pfor k = 1:15. Q3 W# ^7 f. M
    - z, C9 ^! ^5 H2 E/ y$ b/ q
  • 4 h# \% v4 z/ `* n  A; p

    ' T7 n+ M- G3 V" b1 w' I    v       = DrxTdrx_\DrxTrxk_;. _2 o* {$ a: Q% M0 n
    ) Y0 M3 L! E+ X& n7 G$ `# x

  • ' y9 b. _% y9 O+ I" O/ A( W$ v. U: ^

    ; v8 s9 @2 L; E$ o' N    xy      = xy+v;      3 ]+ `  `" J! {% U1 W! q

    0 j/ _9 ?8 C$ C$ Z

  • : T2 [+ x5 f9 Y

    0 w2 k, ?# U9 G% j6 v' K    DrxTdrx_= subs(DrxTdrx,{x,y},{xy(1),xy(2)});
    * ?' w, u6 z' [# t  D

    - C3 j- i: x2 l5 p, A- Q* D
  • ' }6 O. }) m) b3 v

    3 {( V4 {  {% s5 F    DrxTrxk_= subs(DrxTrxk,{x,y},{xy(1),xy(2)});
    - v0 |- w$ ^, E; M
    " z7 U" z& v+ O+ V6 F

  • / x! O! q4 F0 Z

    + ]) ~& v% z. T; f. oend
    ' @3 u: o! q* N  D

      j, b. n  [: R4 \' S" R& d

  • - Y# H6 Q; @8 O7 f
    " c4 t6 g, y  j" J$ [/ B
    disp('a with circular initial vector(0,0),Centers(0,1), (1,1), (0,?1)and all radii 1,the point is');
    ( E  U. L* e$ @! w

    1 D7 z: r# t4 O  L) }

  • * B  z) X  S& ~: S
    $ a5 f4 B. {+ C7 `1 ~+ @
    vpa(xy,6)
    + F3 a, U) v$ b% _

    : R) c5 D8 r: j* l3 x2 Z  d' E

  • % I* D2 T$ E3 Q# m& G$ E3 j
    ! t( I7 m* N& L  }) j* r# o

& F" }6 d7 m# E0 E; P

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-24 02:01 , Processed in 0.140625 second(s), 23 queries , Gzip On.

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

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

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