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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

6 a/ B7 h( x/ o: p6 e7 `) T牛顿法优化程序代码如下:
: `1 _0 ?4 X; _: B& V7 }( l9 N+ @0 }function [x,minf] = minNewton(f,x0,eps)/ O7 i9 g6 H3 C: |% e7 P. a  l/ O
format long;  j1 M9 s) ^0 y2 l5 t. r$ d5 u; v
if nargin == 2
& x! X) e! e: s2 \- j- n    eps = 1.0e-6;
: Q: _* A4 Y' M. ^4 Yend
3 ]! |. K' o) u  G
) y: r8 l9 S) }df = diff(f);
- A7 J  w' h& q5 L* }d2f = diff(df);
1 j* ~3 t; ~% @9 X, }k = 0;" e- B" V* z: ^0 Q' b  t: b
tol = 1;
. f1 l! E$ g; _. ^* m9 o8 V% g. f2 j( z: i/ Q
while tol>eps$ x5 J- w  R# ?! A
    dfx = subs(df,findsym(df),x0);) S) R  f* Y' M
    if diff(d2f) == 0
6 o' {- |8 p, w1 u1 l# }* N+ Y        d2fx = double(d2f);$ n2 t* G* Z  h( x: ^6 P% T
    else
0 H: [9 W* R: g        d2fx = subs(d2f,findsym(d2f),x0);* N- d8 Y3 L: T% V
    end
4 D+ z* [; J; a% z9 B    x1 = x0 - dfx/d2fx;
3 Y+ K6 j5 p9 w2 a    k = k + 1;
% q8 |0 \- A9 o7 T    tol = abs(dfx);: b+ Y( o1 C+ ]3 `5 f7 E  J
    x0 = x1;
! J% J$ D  f( e% N1 F; s& @7 iend) _7 w' D6 P  g3 Q

" W# A; `9 A0 H1 @4 Hx = x1;
* s0 {6 t$ ]3 @' M9 S& Bminf =  subs(f,findsym(f),x);6 u5 K% {+ {6 H1 q( B
format short;
0 A  ^9 r' w) \. ^/ Z! j复制代码8 G+ V! i( R5 W

' d, c' Y; j  y  v主程序代码如下:
+ L# u" p2 T+ |syms t7 y. b' i* n% G9 R9 o) l1 {' u; |
f=t^2-log(t)-5
! y3 Z4 |! b# X' s! ~' C5 F) jx=minNewton(f,2)
( r8 e& ^4 U; D8 @4 ^复制代码
. V  h2 ?! i: A$ C/ v
* f3 w/ s5 @# B' K; b/ j& a; ~( k运行主程序后,得到的结果如下:
* R0 f8 N- [& s* E4 j>> minNewton_ex
! t$ H3 m+ |* ?, X# l8 j) K. n" Y6 L" p5 i
f =' O/ @$ y1 b: v
( p: @1 S: W2 ?" z
t^2 - log(t) - 5! N9 p! d! \! l3 R

) _" D0 I% [6 O* h4 O) r2 e
8 z1 x# b9 D5 a% i" O) [" u+ ex =( P- q. K3 G. D4 j$ f5 b1 I9 N
% ~; X. X2 Q- M+ G) d
7273770929600966997213123375563852928/10286665498236842695784281251177659137
, W& l- U: i* c/ `/ D3 w8 t. U* i
# c) W; S: K1 [- J! ]1 U
1 M& t+ g8 o1 F/ kx的值怎么会是这样,不应该是一个小数吗?

该用户从未签到

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
    7 R' Z3 E! X9 E你可以用vpa(x)或者double(x)转成小数。

    3 o7 r/ K! W) `$ p9 u# ?7 M嗯嗯,楼主可以试试这个方法。/ w8 G( F+ @- l' O$ \4 ~

    该用户从未签到

    5#
    发表于 2020-5-7 15:28 | 只看该作者
    shelby 发表于 2020-5-7 13:497 [7 V* O. m6 b9 u
    你可以用vpa(x)或者double(x)转成小数。

    ) }2 F/ e( Q: [5 `2 o: \9 W
    8 g" K: Q+ r0 @3 h" J
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-8-23 19:29 , Processed in 0.125000 second(s), 27 queries , Gzip On.

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

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

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