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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
! n3 @& n/ d* f. J- M
牛顿法优化程序代码如下:0 R- r+ o( l" H% B' |9 K5 a
function [x,minf] = minNewton(f,x0,eps)
2 B+ N# F. D2 k5 H  Tformat long;
/ `, D4 y2 j8 Rif nargin == 2+ C5 z& b5 V$ {& S
    eps = 1.0e-6;: I& r9 Y$ h# r1 g5 a
end
* V( X/ u8 ?. E3 y$ z% U' D# f
" j& g, G& ]9 n$ H3 ?# _& ldf = diff(f);
, W$ z) P7 B% k) \) @, i9 J& sd2f = diff(df);
6 B# @4 g: n# S3 A$ nk = 0;+ r: E& c" [' L
tol = 1;! o. d: Z1 `5 _- n
: m3 X+ A* `4 ~" W8 _
while tol>eps
% V0 F, c: o" X    dfx = subs(df,findsym(df),x0);% ^: X1 K) C: @& |% |+ m- E
    if diff(d2f) == 06 C* b& w* R7 S" q  H
        d2fx = double(d2f);
! H6 ?; c, `$ K) h8 a3 H    else, c9 a$ {! I  d' Q0 f! j  _0 \+ X
        d2fx = subs(d2f,findsym(d2f),x0);
2 h, L, H3 p! c& ^  d' `    end
) t: b6 v- g& J& [" J8 ~6 i    x1 = x0 - dfx/d2fx;, ]7 Z+ N( X  |! T) E, d5 [' Y
    k = k + 1;
9 }( d2 a1 K+ P) e4 g0 v1 f8 H1 N    tol = abs(dfx);
) R& ]3 X% X5 m$ p) D) x7 M. c- o    x0 = x1;% Y2 g/ A3 W6 X* A, n' L
end6 c! b4 Z1 D$ q" D2 P

, P$ C2 }0 H1 Fx = x1;
' P  i4 f# f- r8 S$ P) x" V9 ~minf =  subs(f,findsym(f),x);
$ d6 C% J* C" W+ m) n# vformat short;$ |- U0 W$ _% G! E/ t4 Y
复制代码
3 S8 W4 p8 I' q; _' G8 U9 u" I* z  {6 J2 R6 n# t0 ~
主程序代码如下:
# G, _! D1 f3 ]4 J9 G5 {7 hsyms t
: n3 y6 J7 Q; C- A+ L3 tf=t^2-log(t)-5
* p4 [; |1 x# i+ M5 tx=minNewton(f,2)
; A- n6 ?0 P5 u, F复制代码
/ {9 X' M: Z6 h+ W1 V4 e
- U7 d  M/ |5 S7 S( {6 F  i* U运行主程序后,得到的结果如下:
4 ?) ~! q, E' n5 a7 L1 x>> minNewton_ex! p$ y% i; ]8 x7 D
2 z  t" L4 ]+ j8 U2 ~$ U
f =3 G2 K$ y" {4 G2 V. M( e
% E3 ?, s, x' I+ E# ^) Q
t^2 - log(t) - 56 M0 [: z) J: W# N9 f" B: W0 I( d
& `4 J  Z* ~! v/ Y

7 [! w& U, l( i, b: f5 c3 `. \) lx =4 `4 N5 Q5 |, @/ r
3 E' E1 S) t( H  X# T0 U: e
7273770929600966997213123375563852928/10286665498236842695784281251177659137- z+ n! w: {) L/ I, p( o5 x

9 M. Q1 D2 m- u! v7 W& u0 R
1 c. U7 q; j9 [& l: I% z5 H  _x的值怎么会是这样,不应该是一个小数吗?

该用户从未签到

5#
发表于 2020-5-7 15:28 | 只看该作者
shelby 发表于 2020-5-7 13:491 n# K. Y* a) V7 R" e0 N) I
你可以用vpa(x)或者double(x)转成小数。

; C3 Z' r3 _; }3 F/ H1 ?1 F0 R  h, t( z$ a+ d- C
  • TA的每日心情
    开心
    2019-11-29 15:38
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    4#
    发表于 2020-5-7 15:18 | 只看该作者
    shelby 发表于 2020-5-7 13:49
    - i) w' S- B6 R2 `; N7 U你可以用vpa(x)或者double(x)转成小数。

    ; s% O, m7 @' K( ]) X5 ]- q5 M嗯嗯,楼主可以试试这个方法。
    $ Y4 a3 F6 D' N' I/ X" e* \! e! U/ J

    该用户从未签到

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

    点评

    嗯嗯,楼主可以试试这个方法。  详情 回复 发表于 2020-5-7 15:18

    该用户从未签到

    2#
    发表于 2020-5-7 13:47 | 只看该作者
    默认求得是符号解
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-11-24 11:46 , Processed in 0.171875 second(s), 25 queries , Gzip On.

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

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

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