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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

0 |2 O4 o: M; k. `  S$ P牛顿法优化程序代码如下:
- e$ n! v# x7 bfunction [x,minf] = minNewton(f,x0,eps)
* w3 A" ~% I; k8 e$ L2 j) S0 B' `format long;2 Z, B9 f4 J/ L, x" T( x' h+ v6 e
if nargin == 24 N* o( U! b# f: j* U
    eps = 1.0e-6;
  G' d4 H0 l' Dend- i! D2 K! z$ N' M; O" Y) R

. t8 _( k# ?: v1 h7 D" edf = diff(f);
& G7 [! m5 p7 F0 Sd2f = diff(df);; e3 i* q. P1 X4 }3 e
k = 0;  _' c/ _) n/ \' n
tol = 1;
$ T1 S" A. K. P1 n, G+ y3 E6 t$ x* n( B, ], Z8 }  ^( z% a
while tol>eps( G1 d5 r# \. f+ z5 ~4 Y8 j- k
    dfx = subs(df,findsym(df),x0);: l$ H, G9 ^  k) ]) r* X3 t# m1 P- |
    if diff(d2f) == 0* v* z+ Y7 G3 s
        d2fx = double(d2f);7 s2 M& H! G& H% D4 P
    else* H# Y) q1 w8 u% d% x
        d2fx = subs(d2f,findsym(d2f),x0);. i0 f) H6 G+ N: }6 x- Q
    end- K! m" Y1 j7 G4 c6 A
    x1 = x0 - dfx/d2fx;3 F/ S5 O  b1 G
    k = k + 1;
( ]  R# {+ v% P* s& S. q    tol = abs(dfx);
: |3 B; C, @# R    x0 = x1;( A7 g" A5 J+ L' v, U) b
end9 K* z% k4 [4 j* K

  V' B- U. w3 w# d0 ?x = x1;
/ E0 m9 a8 J" }/ y) o, |$ [minf =  subs(f,findsym(f),x);
. I- S/ j& D0 ^+ S& n$ L+ Bformat short;
4 f, P" A- v5 \1 Q* K复制代码( s1 k5 y, C5 r; z* m$ `+ O

; _( Y, F9 s/ Q; O主程序代码如下:
3 Q9 V/ L, q3 H9 [. T8 ?, Jsyms t
& N" T7 C. z8 L! e8 Lf=t^2-log(t)-5
5 A; w& C* D, W5 G$ G& Z6 \& z0 }4 ]x=minNewton(f,2)6 v: R( V+ T2 T, r
复制代码
" `- i# Y+ ], {* _3 ~$ u+ ~$ B" T$ [3 A$ b
运行主程序后,得到的结果如下:& {' |8 _+ }8 `' i4 [( J
>> minNewton_ex: Y( u, K& \' n. z0 a* B
7 d0 S1 q/ T2 C9 C5 M0 i3 a  T* L
f =
3 L, s1 ]% r& v' f  D9 J8 h1 ?3 Q: I
: m2 F/ \% m5 J) \3 S* _9 Ft^2 - log(t) - 5+ F' E, X1 ]6 @' P- h
6 A  Z5 P4 J; f. g4 J! a

; V* ~+ e: o0 g" X  v0 Rx =
- s. ]' _1 Q% t% H$ @- I5 C
6 S9 g( C2 u9 d5 z7273770929600966997213123375563852928/102866654982368426957842812511776591376 o5 g/ I' C/ }: h% J: P4 E6 [9 g6 i

+ d. b6 Z# x5 j1 J; `( i
" R; w5 [0 s  W, P# ]5 E3 w! nx的值怎么会是这样,不应该是一个小数吗?

该用户从未签到

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& k" h* |) }  C
    你可以用vpa(x)或者double(x)转成小数。
    ! t) a' w6 {+ ?
    嗯嗯,楼主可以试试这个方法。2 K% h: T5 g. ^% f

    该用户从未签到

    5#
    发表于 2020-5-7 15:28 | 只看该作者
    shelby 发表于 2020-5-7 13:49
    2 S' l- W& y# o& M你可以用vpa(x)或者double(x)转成小数。
    1 @: }+ C: b1 H. s8 r  E
    & X4 i+ s. Y# w
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-11-5 00:35 , Processed in 0.125000 second(s), 24 queries , Gzip On.

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

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

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