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

Matlab之Gauss-Newton法

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
这一题就是已知初始点,然后求某一点到三个圆的距离的和的最小值。使用的就是大名鼎鼎的Gauss-Newton方法。这里要求雅克比行列式,由函数 jacobian可以求出。所以这就减少了许多不必要的麻烦。
  `8 U  O7 l- {" Y: A# L. J  r! H: M% V8 C3 l( o3 o

代码如下:         
3 I7 r1 g3 ]- _8 j; Q

( g+ Q) J+ q' B. `& ~% j# a
  • 4 C5 @' x$ ~& a
    - {  U5 o" g" H
    % using Gauss-Newton method# q1 v/ \8 p. \  C& L
    4 S1 X: V/ f; |$ n! W1 m$ W' r

  • 8 q* Z2 t# f% J  v9 l, @5 }! \, \
    3 n# {5 M0 o. B3 I
    % initial point(0,0)# [2 n9 v4 o# I9 v: X3 Y
    8 ?/ o* X! Y% Z

  • 0 r# o8 Z; M% [( t' z+ Y% Y
    5 g+ A- c- i+ u9 v/ e1 G+ V' }
    % 1、with circul point (0,1),(1,1),(0,-1). A  j8 Y. Q& u$ ?& \8 I' o4 O

    ( [0 P$ A! I6 X8 o0 S  {$ D; L

  • ( X1 q: t! T# V- K: |+ x
    " T/ ?1 x: l# T6 G: \" E: m
    % 2、with circul point (-1,0),(1,1),(1,-1)
      ]8 ~5 J* k" w' s: L% A2 f

    * M) G5 Q2 P# n) H" }
  • / C! c! X/ G8 C: }( f$ b1 x: I
    ) W. w8 u" b: q
    % its radius is 13 s0 n- Q" x8 {8 B/ e

    3 v4 \$ h8 s/ D5 N3 d

  • % H% H# P5 t! r: {2 N2 `

    6 c: D/ G1 V9 q/ |9 J3 Z! Y% output :the sum of distance is the minist
    8 ~$ D  b, `2 D) B
    ) Y3 B8 v" R  u/ `, A, M
  • + w/ c7 K! L0 i% N2 o5 n
    , `4 }. E9 t; ~& T8 y) e
    function page_237_1
    % f7 |8 q2 G7 ^7 X9 J5 `$ @% l1 ]
    2 p8 `! A9 n9 a1 z( C

  • + f/ M- p3 c; F
    ! Q9 X: y4 b- \
    format long6 E; h+ B2 T4 `1 }& C' D

    2 O5 N# R% r  ^3 `, i2 d: `
  • 5 Y" P! q) U3 y' |  _

    2 }- a, v* V* H- H1 A7 O: ~! }- jsyms x y
    3 L" J; a4 x7 N4 D! V& d9 b* ]

    " j% t% S$ O: W7 C0 k

  • " o7 a3 @% A! W* R& N( X; m2 r
    3 K2 z) E; X- O) p
    r1      = sqrt(x^2+(y-1)^2) - 1;
    2 n- j. ~5 Y1 x. x

    2 q* R2 V  [3 v+ ~) M
  • 3 ?5 @# p% V5 Y7 b

    7 v6 v6 X2 K, K5 F0 br2      = sqrt((x-1)^2+(y-1)^2) - 1;
    4 ~. w8 ^: C% P$ o7 f% D4 P9 A3 ^
    : w# w3 l( R' G4 x
  • 9 h. ]' c) u& ^

    1 s. m7 H  X' c* D8 Nr3      = sqrt(x^2+(y+1)^2) - 1;' V2 ]( U5 e! y$ q

    5 X( p8 P* A9 }+ \. U. s# Z

  • . S7 F( m' N8 _# r) u4 u

    ! f) S! C9 l1 s: ^: Nrxk     = [r1;r2;r3];
    9 K2 ^1 f7 t. [1 v
    ( E0 E; ?+ x& s

  • $ `0 ~" i1 k4 O- Y9 O2 |+ n
    8 U+ o9 F9 ?! v: c2 r7 o+ f
    Drx     = jacobian([r1;r2;r3]);
    . J4 }5 D( i4 Q4 g
    & A; \, y. u7 B- l  n( i0 ~5 s; Z

  • 3 z8 S9 X5 u8 u, x/ G$ H6 v5 K
    . G  h+ W9 C* [, |5 a
    DrxT    = Drx';  D& g1 ]2 I+ o

    . z- B: h* t3 Y/ U9 E- ~
  •   u2 B6 T+ m, M* p  l
    # r; D1 \# e! A/ v+ Q
    DrxTdrx = DrxT*Drx;                 %Dr(xk)TDr(xk)7 D4 h8 {# g# j% t+ f& j# o: }2 x
    & y( A, _5 j8 ]# z. W
  • . F: s( h( w% _) T. L

    ; `$ q2 ~3 ~+ s4 Q; m. F- kDrxTrxk = -1*DrxT*rxk;              %Dr(xk)Tr(xk)
    3 o# s: l' t3 A( @! M6 t
    # J+ }( \- Z/ T) [$ X: D
  • . q5 _( n; I/ K3 J  s
    5 N; g  k* Q- m' L( r/ E
    %vk     = DrxTrxk\DrxTdrx;$ c6 l  o/ h" ]* Q! c
    8 n2 o: |' r1 n9 C$ w* c

  • * c$ \' Y  a; r4 r2 i, [
    % p+ P& k; o# L7 ~: r
    DrxTdrx_= subs(DrxTdrx,{x,y},{0,0});
    : v* k3 ?; K  I1 x

      B9 {( n" C! {# N

  • ) {( g. [# X/ y

    ' `! U" ~% }5 ^; b5 V; ^" ]DrxTrxk_= subs(DrxTrxk,{x,y},{0,0});8 L$ s( h/ W  u8 B' ]
    ; P8 B! F, H$ U) A' O0 Z

  • 0 Y3 X! b' a4 g$ i2 X
    1 J% E! t* N4 y( U! }$ _
    xy      = zeros(2,1);
    8 f/ W1 |3 t- h3 o( O7 \1 F7 J

    & r/ e# v9 r2 M& u# k7 B( P

  • 7 Y- V* ^- Z+ Q0 g  r2 l

    - o7 C& V+ w* d# Xfor k = 1:15
    ' V/ M  J' O, U
    9 O/ l5 c4 S, D, I, s

  • 5 v9 _! D0 x% b/ F8 W6 p0 J# m
    # z) O1 ~0 E# y: s2 h7 {
        v       = DrxTdrx_\DrxTrxk_;
    4 H# x6 B% w, D9 O$ T3 I$ E

    1 G% A( b% n4 n$ C& a/ `

  • ; @; z0 J1 j3 _2 J. y
    * X3 U; h; [9 j' D
        xy      = xy+v;      
    & S0 s9 v0 Y; n, g2 G

    : J* ^- I2 y; R% o; H( C8 f

  • + d* Y- v' H* G; t
    : j2 u  ~# B. K4 ~  ^7 E4 Z
        DrxTdrx_= subs(DrxTdrx,{x,y},{xy(1),xy(2)});' {' g" _. z: w6 Q# J0 [
    2 B' C* f8 X% R3 V) j

  • 6 w. F. t) ^0 j) Q
    ; j& w  F9 m) c- D- z& W
        DrxTrxk_= subs(DrxTrxk,{x,y},{xy(1),xy(2)});1 ^" u$ L/ `; y1 a4 R+ |' _
    ( L( e& j0 }3 ?# V, i3 U1 o

  • # y& I# K+ z1 ^1 M& U! p$ K

    4 \' M9 V8 u) D. o: t, P8 Mend
    # G/ D$ ?. C8 L& R/ F% X1 k$ M. d

    9 u' {* q  A5 s7 i' i" g
  • 9 z- A$ m3 l$ i1 N
    ! n& |/ {/ ^. `( x
    disp('a with circular initial vector(0,0),Centers(0,1), (1,1), (0,?1)and all radii 1,the point is');8 L4 \2 _7 Y( x5 [& Q9 y8 s
    ! I7 [3 V# o$ u# M8 O1 J/ ~
  • 9 S' w7 O7 ]1 f

    - }9 M: x; t- L& {/ I0 ]1 G; G% Xvpa(xy,6)1 d& e5 E) {+ G

    ( L: C  z$ c2 s* z' t5 b; O  I
  •   d, j! D' e- n  E2 o
    / R4 O5 u5 F# j8 |* A" |( A4 ]: f

% t8 C0 D0 [! d6 }% b

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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