求解Matlab中的结果证明是无穷大

时间:2018-02-04 21:08:57

标签: matlab math

我在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)

1 个答案:

答案 0 :(得分:1)

您正在处理非常小且非常大的数字,并且您可能没有对结果(answer变量)给予足够的重视...因为它包含一个除法符号({{1} })。给出:

/

如果我运行你的代码,我会得到以下解决方案:

syms p;

当我使用answer = 724122253742406711011644945554203085511758135573 / 45234281407471544700030010881484741752481319554159476736000 将其评估为完整数值时,结果是最终结果为double(answer) ...这似乎与您的期望更加一致。