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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

0 B" L  B8 m( M% R; s4 p牛顿法优化程序代码如下:
9 O/ G6 t+ T& `8 t( wfunction [x,minf] = minNewton(f,x0,eps)
( k  v% {  r2 }# [5 Iformat long;
; H# f- T. O% mif nargin == 27 K- e! ?/ }# i
    eps = 1.0e-6;
7 n; o, g4 _9 ~" oend
7 u4 P; G$ Y* _* K0 ?( E
: k$ |; z4 X: i. pdf = diff(f);
% F6 U' _3 p  T1 P- }) K9 vd2f = diff(df);
  D3 h/ |5 M) i) G) n  I( C. uk = 0;( ?9 `7 `8 a4 q  i( |& T$ F; i
tol = 1;
1 a' _' _' a/ Z3 X- }) d8 j/ k* c
6 v) K6 |; g- }0 vwhile tol>eps/ J% f; ]& A; _; ]- A7 ~
    dfx = subs(df,findsym(df),x0);
9 N; x$ }5 L+ `- @- E) k    if diff(d2f) == 0' [+ ]6 b$ E8 }1 r
        d2fx = double(d2f);
5 n4 j+ ^. J; C' u" m2 D    else
1 k$ _5 K' t' h6 _        d2fx = subs(d2f,findsym(d2f),x0);
1 t4 x; m  ^2 O% S2 B    end
6 c, m% `  i3 e' V0 O' q    x1 = x0 - dfx/d2fx;
* S9 n& r% S- T    k = k + 1;4 Y; f+ D! o/ w9 R8 q
    tol = abs(dfx);8 h1 @- m, _7 s- [+ j8 W& G$ K+ q9 j+ c
    x0 = x1;1 h3 \3 W: l( ~; h
end
3 t* i* \8 \' N' H  l& m. U) a% K# A! f5 X: L
x = x1;
- o3 k5 f; r. n# J2 L/ Iminf =  subs(f,findsym(f),x);
* \7 u+ Z4 G' A# m2 P2 jformat short;
7 l( ]5 z( K, h: ?复制代码3 q- @9 i1 X9 F1 h1 g! l
4 N! a( s( e! i2 [" e' a! ~# n
主程序代码如下:
/ x8 B5 w7 i5 o. {# m' W" R3 }9 Asyms t: v( }2 G# |2 h$ q
f=t^2-log(t)-5" C4 G( V( @" l$ \/ a/ o# t/ M
x=minNewton(f,2)
- X9 ~1 w+ C" F+ n复制代码  Q* U. E# ]9 Y; P( N6 n9 Q
- \9 D0 E, D2 M- B
运行主程序后,得到的结果如下:
5 H6 A# n$ O7 }4 z- ^1 G>> minNewton_ex
0 S$ c9 E6 r( ~, {
9 ?8 c* V8 |0 R7 }; Y! Hf =
* f2 Y. X" Q( x  R
; U8 h# M7 o- c0 T2 K: D  ct^2 - log(t) - 5% I5 t5 U/ ~! L0 O* k$ g& ^
7 S' z1 D" v: ?2 c* A# K2 M. }
2 \7 d) ^+ o+ p0 J
x =
* F1 V: d, @+ x/ p; i
! Z7 G- {% T- V  g2 K( a- T9 f7273770929600966997213123375563852928/10286665498236842695784281251177659137
7 A) W/ G: Y5 b: P6 |
4 m3 c: f& L4 y2 j, b  i
0 A: X/ ~3 {8 P- v& wx的值怎么会是这样,不应该是一个小数吗?

该用户从未签到

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
    ) G' J. |, v$ I( c# R& ]你可以用vpa(x)或者double(x)转成小数。
    $ X% I6 B' B5 O- q# q
    嗯嗯,楼主可以试试这个方法。
    3 b, p0 V. \5 z& v: K# d2 h- h

    该用户从未签到

    5#
    发表于 2020-5-7 15:28 | 只看该作者
    shelby 发表于 2020-5-7 13:49
    % ]$ Y. e+ D* E$ R4 a' {) U你可以用vpa(x)或者double(x)转成小数。
    8 Q1 I# C' C- E( h) \. c
    + S) i! J& o4 [$ N
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

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

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

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

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