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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

* }- Y6 K7 `4 |; e6 b$ \: z牛顿法优化程序代码如下:
3 W6 @  w8 i6 B  `; F+ u: Gfunction [x,minf] = minNewton(f,x0,eps)
; y! c/ y/ e) X+ \3 `5 ^  \format long;
  e( N6 w4 s* ^' Aif nargin == 2
+ J6 R' F# F+ `" x8 p    eps = 1.0e-6;7 b- u. f* N" C
end( q, a& K$ q2 L3 O* L, \5 C9 O# b  \

' {! q, L$ V: |% Y% edf = diff(f);
; J7 m- D9 Y+ ]  qd2f = diff(df);
  [3 N( ^1 C  d  hk = 0;/ `# b1 `5 R' r" M
tol = 1;* B( ?* v( `9 \* {) d
! t5 f4 j+ O2 |3 I* U8 `9 ]0 G
while tol>eps$ `( J9 `8 `! d3 I0 \, \; D# |! J
    dfx = subs(df,findsym(df),x0);' [5 C+ t8 |" J' A2 `
    if diff(d2f) == 0
0 ^% h1 f! T" V4 _- x+ g% m: O' G% r& H        d2fx = double(d2f);  `# g( y1 u5 B/ Q, Z1 f9 I
    else6 Q  ]5 q  |3 ]
        d2fx = subs(d2f,findsym(d2f),x0);
$ i9 N6 a- X- I# a6 w2 H) e    end
( w- F) c* i3 F) p- P/ b& D2 W- ?    x1 = x0 - dfx/d2fx;
& T& V: w' u9 ]' t& t" H, z  `5 {    k = k + 1;
: ~" V  l8 _6 ~) _0 Q6 V. P( k9 s( o    tol = abs(dfx);; p6 g; C  e/ q4 e* m5 f% F9 I
    x0 = x1;4 `* P/ E  g, \$ q7 d8 o
end6 ~4 v* \+ c6 x$ [

  B& ^- s2 C, Y" u$ J+ H2 \x = x1;+ P8 D8 b* o$ ^( d: r8 ?
minf =  subs(f,findsym(f),x);
  q! `1 Y) R1 q# s7 Hformat short;
8 E( ~1 p0 d/ Y/ |复制代码* y1 `* m$ f- w6 t* K0 Z
5 N6 p+ R9 \+ `
主程序代码如下:
& h$ H. ~# M9 T$ @0 D4 `! \syms t3 u; L/ R: t' Z0 c
f=t^2-log(t)-5. N9 c  D0 V1 J4 u7 E
x=minNewton(f,2)
4 o% k: v' O  H4 R* M- B# H复制代码% X6 c- g8 i# u7 ^4 h

! y* Y$ p* c! U* |7 q0 [7 }运行主程序后,得到的结果如下:1 m1 O* O( y5 Y$ L, O* \0 {
>> minNewton_ex* f" Y; Q% P3 f3 r$ t: Y2 z+ {

9 o& M! k& m% O; L5 If =
8 h  P% `( a+ p! o* O- v% d
7 `! |# O, B5 L5 Z* U( p. gt^2 - log(t) - 5
" `- D- n$ a+ ]8 c1 @3 m
& v& ~# S0 J$ g' t
1 m0 T' y/ G* e; ?; n& px =: ?+ K9 ?/ k8 S  S- m& f, V

8 B' s5 B; T# n$ c' R( o0 d7273770929600966997213123375563852928/10286665498236842695784281251177659137& }) c3 B) o3 ?8 {# y! p* z
* q9 U$ |' s0 I6 e; V

0 c' B+ F  M+ `5 f1 hx的值怎么会是这样,不应该是一个小数吗?

该用户从未签到

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
    6 L5 ?" `+ a+ y你可以用vpa(x)或者double(x)转成小数。
    3 v6 X; }2 K0 D7 U6 d, [$ j
    嗯嗯,楼主可以试试这个方法。0 s4 k0 K5 X# {8 k8 @

    该用户从未签到

    5#
    发表于 2020-5-7 15:28 | 只看该作者
    shelby 发表于 2020-5-7 13:49
    0 [) n1 [" v( p$ ^6 _2 }你可以用vpa(x)或者double(x)转成小数。

    5 |+ M" u0 I  @8 q$ J. K& \4 j7 Y2 t0 m  |. J
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

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

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

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

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