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

矩阵表达式

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
自定义的函数:+ T" i  M3 c5 Z2 b# |  y8 H$ h
function f=largejfun(x)
+ p4 ~5 F2 ^& Q. l: m8 z# ]9 vf=(x-1./1:100).^2;
. b* b- }1 ^' @# R) qend- ]" E3 m3 H. l
( L7 |! f$ r5 n
调用函数的时候:/ S& a6 c) n4 n" Y% f3 y; K
clc( c) s; ~9 x- @
x0=10*ones(1,100);
0 J9 V2 O7 U9 v/ x) Moptions=optimset('display','iter','TolFun',1e-8);
& c1 j- x2 U& U" z[x,fval,exitflag,output]=fminunc(@largejfun,x0,options)  K1 h, ?# `  p; W# h  r

( r7 {4 @7 h5 U7 p* s' ~! I0 H& j1 ~8 B7 s& B" D7 {7 Z! G) t
运行结果出错,出错结果显示如下:9 x# [1 q: h) A/ Q0 }  |' U
错误使用 fminunc (line 348)4 n" i6 g' @( Q* P2 ?9 \  i
Supplied objective function must return a scalar value.
- k! I' J; ~5 [5 \; h7 i0 q3 p% c3 c& M  |# p

+ j% ]+ J: e( @. E2 X出错 fminu1 (line 4)* u' [9 D  c6 p8 W$ K
[x,fval,exitflag,output]=fminunc(@largejfun,x0,options), I( S0 @% L" M- C& L6 @# b; z% [
4 z3 d' v) e- R5 H, s3 _! i
; D$ c! l, H; B( m$ R) B
4 F. Q. s- G/ x' J( g/ h
+ o- J- Z4 ^2 U# ]
9 J, U3 C8 J: T# h: l' p1 o9 b3 Z
1 y2 f7 t5 b% X% g' U/ }
3 @0 S, k) p/ Y2 m7 |) W4 m) v

  T4 p& c$ U$ H* }2 U$ S/ h我将自定义函数改为如下:6 Y! g( s# }# h! y( ?
function f=largejfun(x)
/ }  j7 {4 E' X3 df=0;
" `5 X3 i. q9 T& jfor i=1:100, k/ A/ ?3 [6 {: Y. t
    f=f+(x(i)-1/i)^2;* ?3 X+ }2 B1 M5 B0 y0 q
end& o7 F: L) b+ Y3 f$ ~; N. l' ^
* @# ^2 V. k: F9 t
最后运行结果没有任何问题。" E$ G# q, l' P* ]9 H/ i' `
那是哪里有问题呢?

  L; o: Q3 a. [: n/ s2 u

该用户从未签到

2#
发表于 2020-8-17 10:48 | 只看该作者
很明显啊,f=(x-1./1:100).^2这种写法,甭管你的x是标量还是向量,1./1:100肯定是向量,做差之后还是向量(或矩阵),再求平方,仍然不会是标量啊。
9 l# j7 E* K; g$ p想转换成标量就用sum或者norm之类的函数,通过求和、求模来转化成标量。- W3 k1 \! x5 N. S$ {' ]

点评

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

该用户从未签到

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

该用户从未签到

5#
 楼主| 发表于 2020-8-20 14:04 | 只看该作者
kekek 发表于 2020-8-17 10:48
: A+ o# ]! ~+ a3 c; [' K很明显啊,f=(x-1./1:100).^2这种写法,甭管你的x是标量还是向量,1./1:100肯定是向量,做差之后还是向量( ...
3 U; k# x8 e* ]& C1 ?3 w. q7 o0 u
谢谢大神指导
) w1 i$ P* T) A3 ?& J/ y" h
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-6 15:52 , Processed in 0.156250 second(s), 27 queries , Gzip On.

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

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

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