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

矩阵表达式

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
自定义的函数:5 C% l3 g& K1 H. t
function f=largejfun(x)
0 d" `# o. Y. N# v) H! F) r, N4 `f=(x-1./1:100).^2;- ~' I8 H0 E. q& W+ i/ z
end) R* {! ]6 f! {" @3 b0 G8 t- [4 B0 j
! h# w! v) e6 N8 J
调用函数的时候:' o9 ]3 f! J+ v$ Y" Y
clc. u/ S* b+ X6 o6 |
x0=10*ones(1,100);
( ~2 L+ W  K7 Q# T  Qoptions=optimset('display','iter','TolFun',1e-8);
% ^5 h6 |4 y' H) u# E8 j) j  I[x,fval,exitflag,output]=fminunc(@largejfun,x0,options)
" r( T* y) @& Y/ p( d: R, @) I% i5 t" o0 _8 A4 l, t  Q, G5 d1 v; G
8 Z' E- K# J6 m* `& g
运行结果出错,出错结果显示如下:
1 c( b/ l, X/ ?& j7 C/ b错误使用 fminunc (line 348)
8 ]( ?: h$ x' U0 g+ g- |! BSupplied objective function must return a scalar value.
$ @2 ^& C. U% |$ Y
+ s& B8 |+ D- ~3 Y

! c* ]8 U7 W8 y/ y出错 fminu1 (line 4)1 y4 b7 J1 r' T; z
[x,fval,exitflag,output]=fminunc(@largejfun,x0,options)& i) \$ W, |3 s9 ^  W1 s
/ w0 T! ~# H9 j+ u
/ `! ?; A/ R2 \' n9 \
, v( V/ {2 ~; [( R

& x, E* q4 b8 y4 {% H
$ Q" s* w2 w7 G( ]
$ l$ o% h# \- ~& B

, @; V9 w: Y2 K+ {" a# y
# S$ I+ d7 u1 e( Q* t+ m
我将自定义函数改为如下:6 s8 n1 X2 Q3 @- s6 J. D4 z# Y
function f=largejfun(x), D$ c1 x; U3 A( k; A" R
f=0;
6 \/ \8 |0 \7 O7 ]for i=1:100
8 G! W+ q9 ?6 @# z# C    f=f+(x(i)-1/i)^2;
& p5 D4 P$ }  j1 O: ^  nend$ A- `+ F+ O: g1 f3 l- F

' C9 Z/ ?2 s, `/ ^. g最后运行结果没有任何问题。% [7 t' D) n1 }* F: Q3 a" R
那是哪里有问题呢?
' ~, m* J0 y$ a6 B5 F

该用户从未签到

2#
发表于 2020-8-17 10:48 | 只看该作者
很明显啊,f=(x-1./1:100).^2这种写法,甭管你的x是标量还是向量,1./1:100肯定是向量,做差之后还是向量(或矩阵),再求平方,仍然不会是标量啊。6 M2 F, E& E" D& J1 m! S
想转换成标量就用sum或者norm之类的函数,通过求和、求模来转化成标量。2 @- d3 E' S8 [8 }* ?( S$ q

点评

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

该用户从未签到

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

该用户从未签到

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

6 `# y" e! w' Z; m谢谢大神指导
& x$ l5 D. `- b) N5 e6 v
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-24 18:21 , Processed in 0.171875 second(s), 25 queries , Gzip On.

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

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

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