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

矩阵表达式

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
自定义的函数:
( J) R1 O4 H. k; Ufunction f=largejfun(x)
: B! h3 e5 g- J7 E6 Ef=(x-1./1:100).^2;
) V. Q/ E2 B. Aend) S2 d3 Y: P' L* n2 G
) Y: N9 L' |3 r  a
调用函数的时候:5 I. T5 J2 O- `1 ^9 C7 T" }
clc- f+ R& `7 n! ]1 X8 ]2 Y1 N" }
x0=10*ones(1,100);
$ e6 C/ w3 _1 h$ m+ Goptions=optimset('display','iter','TolFun',1e-8);: J- d- u( `( O. r
[x,fval,exitflag,output]=fminunc(@largejfun,x0,options)2 t: ?0 }. T! s2 Z* u
' O) x& W2 _9 m; n) B1 b1 ^$ W$ d

7 ^8 q( H: t: G! ^9 }运行结果出错,出错结果显示如下:
/ m( j3 h' L0 f, o3 E+ Z" u错误使用 fminunc (line 348)
" J# _! W" s6 r+ J) fSupplied objective function must return a scalar value.) P. d% l" ^0 }4 @6 Q2 ^( u

* e; V1 B. y& Q' O7 H
" F) c; H) T  U( j* y( z
出错 fminu1 (line 4)8 s" }7 x( q) d" h* E+ T1 ?4 F
[x,fval,exitflag,output]=fminunc(@largejfun,x0,options)
6 }+ x0 j+ s) y  i4 o1 r
5 j. E. }! g7 ?% I2 E- K
  f- A, H- F' \8 L' Q- q: j
5 W+ A6 W8 f( A, `- @
+ z2 v4 I; ]; I: J

; Y( d; o( P$ r; R( \: s! c

- O' s9 M: [5 W+ O  g# B$ l5 z. F8 y1 @! k3 L- Y: e
; v8 J: ~/ Y+ j0 K) P
我将自定义函数改为如下:# e( u3 @# I4 r1 K/ r  X4 g; e* w
function f=largejfun(x)
9 M% a- {/ B2 L) uf=0;' M' p9 u2 G8 Y1 R" `, }
for i=1:100- e8 Z6 L2 a4 l; b" B
    f=f+(x(i)-1/i)^2;6 c2 }7 s/ T$ H! @6 U: {
end2 w. ^3 P1 w# P3 W6 q8 G

5 }' ]+ m: K) q5 ]! a7 ~8 e1 b$ q最后运行结果没有任何问题。
5 @( j3 a' D4 ?那是哪里有问题呢?

' w& Z+ E1 b2 I# ^0 X/ b6 U7 o( z

该用户从未签到

2#
发表于 2020-8-17 10:48 | 只看该作者
很明显啊,f=(x-1./1:100).^2这种写法,甭管你的x是标量还是向量,1./1:100肯定是向量,做差之后还是向量(或矩阵),再求平方,仍然不会是标量啊。
0 F7 x' v/ X! Q# T* j* F2 d( ~% Y想转换成标量就用sum或者norm之类的函数,通过求和、求模来转化成标量。" D3 A* F& T0 e2 d7 H

点评

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

该用户从未签到

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

该用户从未签到

5#
 楼主| 发表于 2020-8-20 14:04 | 只看该作者
kekek 发表于 2020-8-17 10:48
$ t  h, t( y5 S1 J% g" s2 Y很明显啊,f=(x-1./1:100).^2这种写法,甭管你的x是标量还是向量,1./1:100肯定是向量,做差之后还是向量( ...
5 _! X( ~& U# T+ u( l3 J4 b) I
谢谢大神指导$ i" R  a0 L: {  B4 N
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-7-27 06:10 , Processed in 0.109375 second(s), 27 queries , Gzip On.

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

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

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