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

x的值怎么会是这样,不应该是一个小数吗?

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

8 Z  u7 W8 R& N; l牛顿法优化程序代码如下:
3 m0 i) F: X# N* b! g3 _1 b! B4 c" dfunction [x,minf] = minNewton(f,x0,eps)
- N. y/ o/ l) F- E" @format long;
8 w1 C, z5 D/ t' G" lif nargin == 24 I- ^% |. i, W5 T3 O9 P& f6 I
    eps = 1.0e-6;7 E# X# Z! b% n8 q4 M/ w: j' ]
end
; Y/ J  G. e1 V8 J
, T. {. c' o7 s) X- W: f5 F/ [df = diff(f);
- D( [- ~0 r) y, M; q: Yd2f = diff(df);
- N4 E# f$ f2 f4 a; fk = 0;
7 ~3 |( {& Y1 s. Qtol = 1;" u  J6 P1 s# E) p# b
' Z3 X4 w) Q* P  W: J& f# o3 p3 @
while tol>eps
( l& j% V8 [2 e5 P$ {8 R+ ]    dfx = subs(df,findsym(df),x0);* E6 h2 I* p. L8 D- n4 Z
    if diff(d2f) == 0" L. b) r# T  [; M* W
        d2fx = double(d2f);
$ z& g  h9 i+ O6 t- y% P$ L3 N- D    else
4 q0 J( H  v. n$ [% }        d2fx = subs(d2f,findsym(d2f),x0);
3 a: ~% e, ^* c* q    end6 ?. Q4 J- u' I/ U& q  t* z) l+ i
    x1 = x0 - dfx/d2fx;
5 d; B4 j9 `% z" M3 [8 g    k = k + 1;0 O% G# k/ j; O( S& X! F2 I! k+ B
    tol = abs(dfx);( Z1 X+ ^) e6 r0 z0 O/ m. @: k
    x0 = x1;1 d4 o/ Z/ M9 n* K8 k
end6 ^+ p: A. r9 N8 x% V/ p

" @- `& |  R  q1 Jx = x1;8 ], n' f0 Z) B4 g9 _$ k  e
minf =  subs(f,findsym(f),x);; b7 R% o' ]1 `! y
format short;! O) T3 T1 c9 ?) \+ t; ]: c
复制代码
' Q- t( s: T. F& R: |6 M5 [0 N/ ^
7 ~3 Y9 d/ Y' }7 M主程序代码如下:
; Y( B! Y( |9 u7 K& x' m/ C, vsyms t4 S9 N0 e) O5 Y3 j
f=t^2-log(t)-5
& w; V- w4 Z8 ]" f7 j2 b$ d, nx=minNewton(f,2)
, ?3 b! d9 W3 N2 v* J: K复制代码
" d+ D: q2 d' I% k  o8 z+ B/ a( o4 e3 d  p
运行主程序后,得到的结果如下:
5 U9 H2 S* X( ^, [  @7 f5 d>> minNewton_ex
5 {9 t/ Q$ S* l2 S8 x7 i6 a; z$ J1 J7 M" z5 ]9 r
f =
2 D4 _6 X$ _& {# R2 r/ r5 i6 H! _8 m  s, v, X9 r
t^2 - log(t) - 5) b! k; {7 J' h% F, @; y& ]6 a
( Q8 H' N& ?, G7 U/ z
: E) d! O& c9 q) ^4 \
x =3 e0 G0 h$ R1 n, H

9 K# ]- R( N7 ]( Q0 r7273770929600966997213123375563852928/102866654982368426957842812511776591372 Z8 Q) J! _" S5 D" ]. I
- N* K  q; p& ?9 F

/ Y; b, m4 F' {2 w8 b3 |x的值怎么会是这样,不应该是一个小数吗?

该用户从未签到

2#
发表于 2020-5-7 13:47 | 只看该作者
默认求得是符号解

该用户从未签到

3#
发表于 2020-5-7 13:49 | 只看该作者
你可以用vpa(x)或者double(x)转成小数。

点评

嗯嗯,楼主可以试试这个方法。  详情 回复 发表于 2020-5-7 15:18
  • TA的每日心情
    开心
    2019-11-29 15:38
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    4#
    发表于 2020-5-7 15:18 | 只看该作者
    shelby 发表于 2020-5-7 13:49
    % m! ?' K+ k' C7 v( E8 _你可以用vpa(x)或者double(x)转成小数。
    8 g& F) d/ ^- i. _; l% |/ K
    嗯嗯,楼主可以试试这个方法。
    9 \. u% x! `( @/ ~% Y

    该用户从未签到

    5#
    发表于 2020-5-7 15:28 | 只看该作者
    shelby 发表于 2020-5-7 13:490 b6 g" G( ]( B
    你可以用vpa(x)或者double(x)转成小数。

    8 M8 N1 }' S0 t' R. _2 Q: f' k  a
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-6-25 15:44 , Processed in 0.093750 second(s), 27 queries , Gzip On.

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

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

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