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

矩阵表达式

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
自定义的函数:
  J) y( ^5 g  m5 Y" z7 ~function f=largejfun(x); ]5 N/ f2 ?) V, X: h: J# U
f=(x-1./1:100).^2;) H9 |& K, a- ^" P5 t) P
end
# u; Z: r- C1 B" v5 I- |# J* K) r+ O! u
调用函数的时候:2 v3 v* B/ U0 c1 m5 K) T
clc
, z% N  j. n+ ~( t& z1 o) ?8 lx0=10*ones(1,100);) N0 u' u6 x4 _* A, R
options=optimset('display','iter','TolFun',1e-8);3 i- N+ ?3 w2 q$ S; n: Z
[x,fval,exitflag,output]=fminunc(@largejfun,x0,options)3 S; z5 G1 B& U9 X% Y  N2 ]

4 @: C5 X3 i* m0 h: K. ^9 K
2 o: ~4 W+ N  l3 t+ F+ x运行结果出错,出错结果显示如下:
) n" M0 i3 u2 Y2 `+ {错误使用 fminunc (line 348)
, ?! f8 n, I; q2 U( E3 n) Q5 k9 OSupplied objective function must return a scalar value.2 a7 R/ D* l5 r9 s& ^2 ]+ _5 M
$ b( L* ^+ N' H
% X# |7 n( ~" [- g
出错 fminu1 (line 4)
) Q4 n9 z& \5 n1 R: ]' g) B$ a[x,fval,exitflag,output]=fminunc(@largejfun,x0,options)2 g% e5 ?( J6 U, s( b* H8 n$ V, j
. H7 ]/ z) ^7 C) c% _. V/ ?
5 X8 U" x) ^# ]( x

$ V# T5 }1 J- x% d3 ~
0 b" Y) g. L( V+ X
, q- r: F1 M: L' j# o: p

9 w4 i* Z( y/ k/ U) l
6 P% r% M/ D# L( @4 R' a' j

4 {  X! y4 Q9 P  }我将自定义函数改为如下:  P5 Q0 t9 W" k! |9 j1 G5 w4 X% L2 h
function f=largejfun(x); Y  O$ s- f( L. `9 `
f=0;
5 ~& Q# \6 m- ]for i=1:100
4 Z' a! g9 i$ I# O( z% ]    f=f+(x(i)-1/i)^2;# t/ X2 A( j& K" |7 y/ h" G/ q
end/ \1 U$ ?8 }/ b
) g2 P9 z0 R- j1 n; \
最后运行结果没有任何问题。
( k% T- _8 h" c那是哪里有问题呢?

, c2 T. D1 ~  H1 F2 S

该用户从未签到

2#
发表于 2020-8-17 10:48 | 只看该作者
很明显啊,f=(x-1./1:100).^2这种写法,甭管你的x是标量还是向量,1./1:100肯定是向量,做差之后还是向量(或矩阵),再求平方,仍然不会是标量啊。$ n1 {1 t  Q. `8 S6 N- N
想转换成标量就用sum或者norm之类的函数,通过求和、求模来转化成标量。. m! h8 B8 `2 ]3 p; ^& Q

点评

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

该用户从未签到

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

该用户从未签到

5#
 楼主| 发表于 2020-8-20 14:04 | 只看该作者
kekek 发表于 2020-8-17 10:48
+ B  q* E( z" `8 n# |( t( T很明显啊,f=(x-1./1:100).^2这种写法,甭管你的x是标量还是向量,1./1:100肯定是向量,做差之后还是向量( ...
7 {$ F  A( v# M% P7 C4 n! K! F' }8 h% j2 m( J
谢谢大神指导7 V, E! J) a! @
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-5 13:07 , Processed in 0.156250 second(s), 24 queries , Gzip On.

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

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

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