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

矩阵表达式

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
自定义的函数:
# |# z2 z2 Z9 p3 ^- rfunction f=largejfun(x)2 G2 y! o4 r5 }* Y5 h2 X5 ^
f=(x-1./1:100).^2;+ n6 T4 h8 ?" Y; W
end
9 Y3 D0 T+ i% b/ s$ ^! z+ Y1 A  K5 T( \' D
调用函数的时候:
! d4 V7 P4 O6 l; ~clc
2 \+ ]8 L- R' vx0=10*ones(1,100);
: Z) `4 A" D) u; p% hoptions=optimset('display','iter','TolFun',1e-8);
3 B8 ]8 i( L7 T, z3 O[x,fval,exitflag,output]=fminunc(@largejfun,x0,options): H5 [& x, g- @! I

: D7 L2 p3 f" k1 ^% ?0 q& L8 c& g9 N) m( I* u# v
运行结果出错,出错结果显示如下:
: d7 \2 H  m+ P& e( u5 Z& d% D错误使用 fminunc (line 348)( t* n: c' Z0 g+ p% U
Supplied objective function must return a scalar value.
8 u! @1 p% Y3 W; ~$ D; \8 V
8 W" W0 I* a/ B( E  u5 r: J

2 `- B$ V. U8 e6 C9 [5 T/ a出错 fminu1 (line 4)
4 X# ?4 ~% c: f' m7 q% [[x,fval,exitflag,output]=fminunc(@largejfun,x0,options); T" a/ Y7 a5 r0 S" W# r
. _. J# \7 s/ e+ E+ I

% a8 {- ]% L# [
. n) \$ M1 `- h( `. M7 @# d% n1 F
2 J2 t, x+ r+ a6 l2 A7 }

" N/ T- t( A' B" J( H/ |
/ Z3 F% ]6 [6 n& C! J0 @

! n6 l8 i+ w, M$ E7 Q- E. ^2 _

  E+ N3 [+ i. K/ S+ h; s- ?& Q我将自定义函数改为如下:- X/ M# L9 |$ N7 Q# l% t
function f=largejfun(x)9 Z" P  n1 y( m( K+ J4 B+ ]0 a& F
f=0;6 Y0 ]2 n8 L  P9 P' C$ m. }
for i=1:1007 {: r. i/ Q( i& W, c/ m3 ~
    f=f+(x(i)-1/i)^2;
+ P! i9 ]) Z3 g- Q: kend. O& `2 g6 e& @) e& O# X2 V4 f; ?
6 p  ]. `7 Q; z% f
最后运行结果没有任何问题。' ]7 B! q4 A$ M& L
那是哪里有问题呢?
4 U1 S! M9 y$ a: z+ M

该用户从未签到

2#
发表于 2020-8-17 10:48 | 只看该作者
很明显啊,f=(x-1./1:100).^2这种写法,甭管你的x是标量还是向量,1./1:100肯定是向量,做差之后还是向量(或矩阵),再求平方,仍然不会是标量啊。5 V$ c0 y/ b( F) g6 X0 \" N7 Q7 Y
想转换成标量就用sum或者norm之类的函数,通过求和、求模来转化成标量。
& T9 W9 L* k" B' [

点评

谢谢大神指导  详情 回复 发表于 2020-8-20 14:04

该用户从未签到

3#
发表于 2020-8-18 13:24 | 只看该作者
楼上正解,楼主试试

该用户从未签到

5#
 楼主| 发表于 2020-8-20 14:04 | 只看该作者
kekek 发表于 2020-8-17 10:48
& V' b4 B8 P  ^很明显啊,f=(x-1./1:100).^2这种写法,甭管你的x是标量还是向量,1./1:100肯定是向量,做差之后还是向量( ...

1 w# {8 T: n% ]4 d谢谢大神指导* d8 B6 o4 F- c' o
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-6-23 19:34 , Processed in 0.093750 second(s), 24 queries , Gzip On.

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

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

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