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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

/ @: d, [$ ?4 N/ N牛顿法优化程序代码如下:, Z. m) {. J  A
function [x,minf] = minNewton(f,x0,eps)) s6 ]8 L# E4 g$ k
format long;
, v- c6 E6 v9 ?  o; S: \( v- Yif nargin == 2. v% {$ a2 n: v& H. [4 c% S9 T7 J
    eps = 1.0e-6;+ k# b! a# ~* Z8 s
end
+ k9 h4 ]: b9 e. ]: c7 L( C
2 O: M2 l% [) Q& Idf = diff(f);1 k. S5 `% I; g6 r- J" |
d2f = diff(df);
7 Y4 `7 U5 o2 N) I1 jk = 0;7 [. B5 ^7 E1 X7 J/ e
tol = 1;
0 M; @+ ^: R6 Q/ v- |8 V% d
: \( T* a  ?; {  A/ S& \% a) awhile tol>eps
# T$ R6 o. U9 Y- i* h4 j/ }    dfx = subs(df,findsym(df),x0);
8 F9 F3 F4 t  \4 h9 W' I$ |* M7 T8 B    if diff(d2f) == 0
* ^( i1 o0 l' J2 R# ?3 u        d2fx = double(d2f);
4 |1 n# `* T: ]! E    else
" F0 y$ l0 o$ c! b5 L( {1 e9 {        d2fx = subs(d2f,findsym(d2f),x0);# @) ~1 c# E: \2 e$ R
    end, ?5 t: c# V) R
    x1 = x0 - dfx/d2fx;$ m! d* I1 o  A' U; {' }# C" i4 s
    k = k + 1;' f8 |# z! t" p$ [# x+ H
    tol = abs(dfx);
/ ?8 x  t% x+ ]: b* r    x0 = x1;
+ C; s. q: g) H5 I2 d4 h/ `! j2 Iend) O2 S# x) u, u
4 a/ m. `+ Q0 q" |
x = x1;* k. i1 i! F# x
minf =  subs(f,findsym(f),x);& u2 Y7 f9 Y/ f; o# G/ n; A; }8 E
format short;' y! P* j+ o. }# [9 h
复制代码* I9 F- w# j# m& }+ t2 i, `

( T1 i2 F( f6 `$ V2 p- u5 T9 p1 ~% F主程序代码如下:( _/ L/ y$ ^; }' b
syms t! O* ]6 ?3 b# K+ c1 T8 Q* Y
f=t^2-log(t)-5
- `3 c2 N# s$ m' b2 E4 R* Lx=minNewton(f,2)
3 F' U/ N) t% V: w复制代码
! a3 N4 H& x+ o
7 |- M* k% Z! m运行主程序后,得到的结果如下:0 R7 M8 d& L+ R9 X1 \
>> minNewton_ex. R7 i9 I. [2 \7 c& y, X) e4 k
" K: f8 D  N% T8 t4 \2 S
f =( |, B; F, z6 l) N% B

6 `  @8 e  |7 d2 V$ m. W* B" ft^2 - log(t) - 5
% g" f3 V1 ]8 _
* L, }( a  H, T  V2 ^" K9 o# ]
, ~4 s. J' Y( k% J) y! T$ hx =
- F4 L* a  b% d5 P+ P, u3 q9 j0 k6 A7 x
7273770929600966997213123375563852928/10286665498236842695784281251177659137
$ j9 l" ]3 U1 b3 Q5 i8 m! z4 j/ F4 v
! W) a, ?' t; ]) N( [; ]
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
      q2 |, ~" V! j' Z' \你可以用vpa(x)或者double(x)转成小数。

    : R4 f3 r& ~# a9 a, [嗯嗯,楼主可以试试这个方法。
    , U  t$ |! [5 I# c

    该用户从未签到

    5#
    发表于 2020-5-7 15:28 | 只看该作者
    shelby 发表于 2020-5-7 13:49
    8 D4 [# H+ Y5 _你可以用vpa(x)或者double(x)转成小数。

    : I! K- ]8 G8 z) O' ]
    5 q( h7 P% W* A: ^
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-11-24 06:51 , Processed in 0.140625 second(s), 24 queries , Gzip On.

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

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

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