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

矩阵表达式

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
自定义的函数:2 x/ D; v" X- d" _) K) L
function f=largejfun(x)
2 `$ X! j* J9 |1 v6 ?/ {9 lf=(x-1./1:100).^2;
3 {/ U9 O( e3 N4 w/ r6 b* q( Oend  H  D! a. F2 Q. H
8 n5 }% ~, a7 L: r0 b$ {; N% x
调用函数的时候:
% b# P2 _4 b3 P4 e, @- Fclc
7 K8 g! m2 X/ n* Xx0=10*ones(1,100);. _' {/ b+ Y- _
options=optimset('display','iter','TolFun',1e-8);
6 Y) b4 m& g4 ^: k[x,fval,exitflag,output]=fminunc(@largejfun,x0,options)
! J4 Q3 c4 |2 W2 m1 m+ i8 c* p$ o5 ?! ^
: O0 [) a5 \1 V8 n
运行结果出错,出错结果显示如下:
# N- i; N& C6 X) A7 _# ]错误使用 fminunc (line 348)2 v6 O. e3 G+ t5 l
Supplied objective function must return a scalar value.
9 b/ V2 u; s6 y, m& C( r; ]0 \  V" s7 L. f2 Z* I4 U& E) v$ R  I

) Q5 T0 Z- f! {. {出错 fminu1 (line 4)0 c% X. Q& |+ }: Y7 ~1 {! X
[x,fval,exitflag,output]=fminunc(@largejfun,x0,options)- p9 ]  F# r0 R1 k1 c' f7 R

" W% b. r% B- {; r  h
( Q5 V8 s: p+ x0 d, m" z7 Z0 S: ~

9 X+ Q; q& E% T) |/ n. [
0 S) T9 H2 f2 N6 p
! `8 |4 \5 g$ x0 O& a" \" @

4 W* Z/ S( d8 L: A. y5 P# B7 s5 m+ s& z: j

/ _' J9 W0 L2 z- I我将自定义函数改为如下:( @7 n9 g7 J! i( s
function f=largejfun(x)
8 m: K' C; A2 ~( T  j% qf=0;
* r. v5 e* |! B5 |; n* M, K5 t5 G4 @; mfor i=1:100
: b4 c  E" n$ N7 K    f=f+(x(i)-1/i)^2;' N. m1 O- F0 Q( J: {9 w; m7 P
end9 V! k' G" K' Y7 b/ a( h  |

% w0 E; M1 S% u( k6 w+ _最后运行结果没有任何问题。
4 F+ }! N% o/ j那是哪里有问题呢?

: B0 d2 e' C, U' q

该用户从未签到

2#
发表于 2020-8-17 10:48 | 只看该作者
很明显啊,f=(x-1./1:100).^2这种写法,甭管你的x是标量还是向量,1./1:100肯定是向量,做差之后还是向量(或矩阵),再求平方,仍然不会是标量啊。
& A, ]9 k/ y3 w* m想转换成标量就用sum或者norm之类的函数,通过求和、求模来转化成标量。; v8 o/ R; ]1 Q3 o& B' F

点评

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

该用户从未签到

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

该用户从未签到

5#
 楼主| 发表于 2020-8-20 14:04 | 只看该作者
kekek 发表于 2020-8-17 10:48  x4 I7 \8 Y% }8 V! Q  e8 ]  {1 a
很明显啊,f=(x-1./1:100).^2这种写法,甭管你的x是标量还是向量,1./1:100肯定是向量,做差之后还是向量( ...
" ?" @0 L" T- H9 o  |; X7 |7 W
谢谢大神指导
9 T6 s0 {1 D( w
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-24 16:28 , Processed in 0.218750 second(s), 24 queries , Gzip On.

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

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

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