我在Matlab中有一个程序来计算物质类强度的P值。在这种情况下,P在下面的等式中是相同的。我的程序运行,然而,它没有给我我想要的结果。如果我在纸上执行此操作,那将是
某个值X次P =右侧的值。
然后我可以将X分开来获得P的结果。请帮助,谢谢!!
代码:
% Strength of Materials Project 1 syms p
T = 100;
EA = 10E-6; EB = 15E-6; ES = 28E-6;
LS = 1; LA = 1; LB = 1; D = 0.025;
A = (pi/4) * D^2;
dsteel = ES * T* LS; psteel = (p * LS)/(A * ES);
totalDeflectionSteel= dsteel - psteel;
daluminum = EA * T * LA; paluminum = (p * LA)/(A * EA);
totalDeflectionAluminum = daluminum - paluminum;
dbrass = ES * T * LS; pbrass = (p * LB)/(A * EB);
totalDeflectionbrass = dbrass - pbrass;
totalDeflection = totalDeflectionSteel + totalDeflectionAluminum +
totalDeflectionbrass;
answer = solve(totalDeflection == 0,p)
答案 0 :(得分:1)
您正在处理非常小且非常大的数字,并且您可能没有对结果(answer
变量)给予足够的重视...因为它包含一个除法符号({{1} })。给出:
/
如果我运行你的代码,我会得到以下解决方案:
syms p;
当我使用answer =
724122253742406711011644945554203085511758135573 /
45234281407471544700030010881484741752481319554159476736000
将其评估为完整数值时,结果是最终结果为double(answer)
...这似乎与您的期望更加一致。