无法执行赋值,因为左边和右边的元素数量不同。

1视图(过去30天)
阿洛克兰扬
阿洛克兰扬 2021年5月14日
评论道: 图像分析员 2021年5月15日
清楚的
信谊x1x2x3x4
xx = (X1, X2, X3, X4)
X1=xx(1);
d =长度(xx);
term1 = (X1-1) ^ 2;
金额= 0;
2 = 2: d
席=XX(II);
xold=xx(ii-1);
ii * (2*xi^2 - xold)^2;
Sum = Sum + new;
结束
xc1之前(1)= 1;
xc2 (1) = 1;
xc3 (1) = 1;
xc4 (1) = 1;
呃= 10 ^ (2)
%yb4=@(X1,X2,X3,X4)(term1+sum)
yb4 = (term1 +总和)
dyb4_x1 = diff (yb4 X1)
dyb4_x2=diff(yb4,x2)
dyb4_x3=diff(yb4,x3)
dyb4_x4 = diff (yb4 X4)
阁下=[潜艇(dyb4_x1 (X1, X2, X3, X4) [xc1之前(1)xc2 (1) xc3 (1) xc4(1)])潜艇(dyb4_x2, (X1, X2, X3, X4) [xc1之前(1)xc2 (1) xc3 (1) xc4(1)])潜艇(dyb4_x3, (X1, X2, X3, X4) [xc1之前(1)xc2 (1) xc3 (1) xc4(1)])潜艇(dyb4_x4, (X1, X2, X3, X4) [xc1之前(1)xc2 (1) xc3 (1) xc4 (1))))
S4 = -(阁下)
i = 1;
虽然norm(J4)>err
当= [xc1之前(我),xc2(我),xc3(我),xc4 (i)] ';
信谊h
gr=subs(yb4[X1,X2,X3,X4],[xc1(i)+h*S4(1),xc2(i)+h*S4(2),xc3(i)+h*S4(3),xc4(i)+h*S4(4)])
h dgr_h = diff (gr)
h = vpasolve (dgr_h = = 0 h[无穷,正])
i=i+1
xc1之前(i + 1) =预告(1)+ h * S4 (1)
xc2 (i + 1) =预告(2)+ h * S4 (2)
xc3(i+1)=I4(3)+h*S4(3)
xc4(i+1)=I4(3)+h*S4(4)
结束
错误在迪克森(第38行)xc1之前(i + 1) =预告(1)+ h * S4 (1)

答复(2)

为副总经理
为副总经理 2021年5月14日
vpasolve()调用的结果是多个解的向量(3)。使用标量对h进行操作的结果仍然是一个3元素向量。赋值的LHS是标万博 尤文图斯量。您正在尝试将向量放入标量中。
2的评论
为副总经理
为副总经理 2021年5月15日
方程dgr_h==0有多个解。如果你只需要一个,你就必须决定哪一个对你万博 尤文图斯有意义。如果你自己不知道,我不能告诉你。我对你的任务在概念层面上一无所知。
如果你想和 全部的 万博 尤文图斯解,你要写一个循环使它能处理多个解的向量可能是长度不等的向量如果解的个数不总是3。由于您使用xc1等作为求解器的输入,这样的方法可能会变得复杂,如果不是不切实际的话。也许其他人能提供更好的推荐。

登录评论。


图像分析员
图像分析员 2021年5月14日
试试这个(在错误行之前),告诉我们它说了什么。
h
S4
预告
很有可能h不是一个单一的标量数,如果你想把它放在xc1的(i+1)元素中,它就需要这样。

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始打猎吧!