如何修复“错误在sym/subsref (line 898) R_tilde =内置('subsref',L_tilde,Idx);?

12次观看(过去30天)
Error也在第43行中声明;
Assignment2CodeQuadratic2中的错误(第43行)
KgQ(indiciesQ,indiciesQ) = KgQ(indiciesQ,indiciesQ) + subs(KeQ,[x1Q x2Q x3Q], [xQ(i*2-1))
xQ(我* 2)xQ(我* 2 + 1)]);% Ke转化为Kg的贡献
% ENME302-22S2, 2022年9月21日,线性有限元演示
%利用线性形状函数导出单元方程。
清晰,近所有clc;
% %二次形状元素:
信谊xQ x1Q x2Q x3Q u1Q u2Q a b c
W = 0.01;%宽度[m]
Tau0 = 1;%初始刚度[Pa]
tau = (1+0.9*sin((√(2)*pi*xQ)/W))*tau0;%刚度方程
F = 100;力密度% (N/m^3)
uQ = a*xQ²+ b*xQ + c;%插值函数(这里是二次的)从式8.16
eqn1Q = sub (uQ,xQ,x1Q) == u1Q;%在左节点计算,式8.18a
eqn2Q = subs(uQ,xQ,x2Q) == u2Q;%在左节点计算,式8.18b
eqn3Q = subs(uQ,xQ,x3Q) == u3Q;%在左节点计算,式8.18c
conq = solve([eqn1Q eqn2Q eqn3Q], [a b c]);解常数a, b, c的联立方程(8.19)
uQ = subs(uQ,[a b c],[conq .]consQ。b consQ.c]);%代入插值函数,式8.20a
[NQ,~] = coeffs(uQ, [u1Q u2Q u3Q]);收集定义形状函数的系数,公式8.20b
N1Q = NQ (1);% N1 = 2*xi²- 3*xi + 1;
N2Q = NQ (2);% N2 = -4*xi²+ 4*xi;
N3Q = NQ (3);% N3 = 2*xi^2 - xi;
%元素方程,Ke*Te=Fe(符号):
KeQ = sym(0 (3));%单元刚度矩阵
FeQ = sym(0 (3,1));%元素RHS强迫向量
I = 1:3二次元的% 3自由度
eleqQ = int(τ* diff (uQ xQ) * diff (NQ (i), xQ), xQ, x1Q, x3Q)——int (f * NQ (i), xQ, x1Q, x3Q);
[coefQ,~] = coeffs(eleqQ, [u1Q u2Q u3Q]);%收集系数
KeQ(i,:) = coefQ(1:3);u1 u2 u3的%系数
FeQ(i) = -coefQ(4);%剩余项(不是u1, u2或u3的系数)
结束
Kk = 2:4:22
%全局方程,Kg*Tg=Fg(数值):
L = w;%长度(mm)
Noe = kk;元素数量%
Dof = noe+1;自由度的百分比
x = linspace(0,L,dof);自由度的% x坐标
KgQ = sym(0(自由度));%全局刚度矩阵
FgQ = sym(0(自由度,1));%全局RHS强迫向量
我= 1:一个组装每一组元素方程。
indiciesQ = i*2-1:i*2+1;
KgQ(indiciesQ,indiciesQ) = KgQ(indiciesQ,indiciesQ) + subs(KeQ,[x1Q x2Q x3Q], [xQ(i*2-1) xQ(i*2) xQ(i*2+1)]);% Ke转化为Kg的贡献
FgQ(indiciesQ) = FgQ(indiciesQ) + subs(FeQ,[x1Q x2Q x3Q], [xQ(i*2-1) xQ(i*2) xQ(i*2+1)]);% Fe对Fg的贡献
结束
具有边界条件的最终方程,K*Tbc=F(数值):
Ta = 0;lhs上的Dirichlet边界条件
FgQ(1) = FgQ(1) - KgQ(1,1)*Ta;
KgQ(1,1) = 1;
FgQ(2) = FgQ(2) - KgQ(2,1)*Ta;
KgQ(2,1) = 0;
KgQ(3,1) = 0;
Tb = 0;rhs上的Dirichlet边界条件
FgQ(自由度)= FgQ(自由度)- KgQ(自由度,自由度)*Tb;
KgQ(dof,dof) = -1;
FgQ(dof-1) = FgQ(dof-1) - KgQ(dof-1,dof)*Tb;
KgQ(dof-1,dof) = 0;
KgQ(dof-2,dof) = 0;
KgQ = double(KgQ);
FgQ = double(FgQ);
%解决和绘图解决方案:
TbcQ = KgQ\FgQ;%未知变量,在这种情况下,我们计算了dT/dx|x1和-dT/dx|x5
TgQ = [Ta;TbcQ(2:dof-1);Tb];%位移值的全局矢量,即替换为狄利克雷b.c.s
为每个元素数量找到中间的位移
Loc = find(x==0.005);
位移(kk) = Tg(loc)*10^3;
结束
索引超过数组元素的数量。索引不能超过1。

索引错误(第1079行)
R_tilde = builtin('subsref',L_tilde,Idx);
%位移数组
centreDisplacement = displacement(2:4:22)从数组中移除零
%相对误差
relError(kk) = abs((centreDisplacement(end)-centreDisplacement(kk))/centreDisplacement(kk))*100;
情节(x * 10 ^ 3、Tg、“k -”);包含(“x(毫米));ylabel (“偏转(m)”);
标题(“线性形函数位移”
传奇(“线性”);

答案(2)

Torsten
Torsten 2022年10月2日
KgQ(indiciesQ,indiciesQ) = KgQ(indiciesQ,indiciesQ) + subs(KeQ,[x1Q x2Q x3Q], [xQ(i*2-1) xQ(i*2) xQ(i*2+1)]);% Ke转化为Kg的贡献
FgQ(indiciesQ) = FgQ(indiciesQ) + subs(FeQ,[x1Q x2Q x3Q], [xQ(i*2-1) xQ(i*2) xQ(i*2+1)]);% Fe对Fg的贡献
xQ是一个符号 标量 变量。但是你要处理不存在的xQ(xQ(i*2-1) xQ(i*2) xQ(i*2+1))的数组元素。
3评论

登录发表评论。


明星黾
明星黾 2022年10月2日
也许- - - - - -
信谊xQ
xQ = sym(xQ的1, [3])
xQ =
xQ2 = xQ(2)
xQ2 =
请参阅有关 信谊 获取详细信息。

世界杯预选赛小组名单社区寻宝

在MATLAB中央找到宝藏,并发现社区可以如何帮助你!世界杯预选赛小组名单

开始狩猎!

Baidu
map