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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

- [; c# v. x. B  D8 t& u* R/ T. g( F牛顿法优化程序代码如下:  ]9 B/ ^; ?. ^
function [x,minf] = minNewton(f,x0,eps)
) @0 ~5 \9 l5 ]) q9 hformat long;( {9 ?6 _( Y  D$ I" C
if nargin == 2
6 R- w" U9 s4 c7 `2 Q    eps = 1.0e-6;
" z) A$ {4 C5 O3 b0 Q  {end+ _1 W* B% f; k! @- `
2 S, n; A) `5 ^
df = diff(f);$ D9 g- l8 \5 T/ I3 x9 @
d2f = diff(df);3 K( ?( W. o$ T: Q8 s' ~0 y
k = 0;
- m' a" X; p$ L5 M% ]( Ltol = 1;
9 l* ]7 I5 v9 H& ?+ M4 {( b" i4 M4 {
0 p( Y3 o, o; B; q  V1 m. f! m3 bwhile tol>eps  u5 t6 h( t9 O$ B: {2 d- E
    dfx = subs(df,findsym(df),x0);. j/ h* Z3 U3 n$ W+ E
    if diff(d2f) == 0
  U0 L1 I6 P; j* X        d2fx = double(d2f);
1 `" o8 I8 X5 _4 u0 f. E& w    else
0 x6 B2 t; G! k9 n3 ]' w        d2fx = subs(d2f,findsym(d2f),x0);  ~4 G) u, N5 j
    end
7 Y+ ]7 i: u0 \. ^0 G    x1 = x0 - dfx/d2fx;
2 A  L0 G! J+ w# L# u1 ~1 y    k = k + 1;
0 ], \4 Q$ L8 L4 f0 g9 C/ D9 m2 U0 F/ m    tol = abs(dfx);
' k; o, k/ L( \/ j    x0 = x1;. n9 `7 `! \% ?" p
end
' T6 y) \4 Z* M7 ?; }( P8 S7 G) o1 R' k2 D  L- I! o
x = x1;/ v7 ]$ F% v* F9 ~& k4 T; f
minf =  subs(f,findsym(f),x);8 Y, \1 ~5 K, n+ @
format short;5 x/ @, o" r+ [% P; e7 b8 h
复制代码; |2 d( ]% G- G& M

* p4 a& f) G( U2 r7 j主程序代码如下:
/ N( O  n' S4 ?; g; `4 Qsyms t! G# |- k- m5 M% \; Y
f=t^2-log(t)-5& |  X3 F) N6 T. l
x=minNewton(f,2)  V7 g5 r4 |: |! I9 P8 @1 H
复制代码
) `) _+ d" M, P- X5 ^" V' t4 y! b9 U, Q4 O
运行主程序后,得到的结果如下:
, E8 d* z9 s0 D/ R# o>> minNewton_ex+ {7 v/ X2 g& [7 h

, p" D: i3 S4 C0 W# \, p4 Qf =
* ^  T7 R; Q3 T( W6 Y/ L  Z- O; [
" A9 H% x$ D# D& r2 ?0 Wt^2 - log(t) - 56 o) Q! X! g" D0 x, `
+ |. b  b) Z- z0 M: a/ g7 Q9 K
) m5 v5 q0 c/ h. }) a
x =
! ?+ S# `9 [8 U1 ?! y* q2 W" I+ a' k' F
7273770929600966997213123375563852928/10286665498236842695784281251177659137
* {' H% O! V( l( N( {+ ~
% @1 n+ d( R: R: `
4 M- v4 m, Y* G# g- n& s2 {x的值怎么会是这样,不应该是一个小数吗?

该用户从未签到

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 w: [6 f7 k; @你可以用vpa(x)或者double(x)转成小数。

    ) _' X7 p4 r. O, l8 X" G5 t嗯嗯,楼主可以试试这个方法。
    * J+ T7 J' f3 n' |; T' M

    该用户从未签到

    5#
    发表于 2020-5-7 15:28 | 只看该作者
    shelby 发表于 2020-5-7 13:49
    / F( ~& _$ p2 O6 P% n! A" P  S你可以用vpa(x)或者double(x)转成小数。

    $ s* n. v4 l- V$ `3 Z& G* I- O6 z6 D2 e4 Q$ X
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-7-22 13:50 , Processed in 0.125000 second(s), 27 queries , Gzip On.

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

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

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