我的问题类似于这个问题 https://stackoverflow.com/questions/11114101/how-to-convert-mupad-symbol-i-sqrt-1-to-i-in-matlab/11114959#11114959但我相信它更普遍。
我使用 Matlab 的符号数学工具箱来求解方程:
MAZ = 0.5;
MAU = 1.0;
XI = 1.0;
ALPHA = 2.0;
DRG = 0.5;
SRG = 1.0;
PHI = 1 / (2 * MAU);
syms L;
f = 1 - DRG - sqrt(1 + (ALPHA * XI - L / (2 * XI * PHI) ) ^ 2 ) / ...
sqrt(1 + (ALPHA * XI) ^ 2) + L / (4 * PHI * SRG * sqrt(1 + (ALPHA * XI)^2));
a = solve(f,L,'Real',true);
答案是:
a =
5^(1/2)/3 + (10*((4*5^(1/2))/25 + 6/25)^(1/2))/3 + 8/3
5^(1/2)/3 - (10*((4*5^(1/2))/25 + 6/25)^(1/2))/3 + 8/3
如何自动将这些表达式转换为a
- 不包含任何符号表达式 - 浮动以便我可以稍后在代码中访问它们?
Matlab 的符号数学工具箱包含一个名为double http://www.mathworks.com/help/symbolic/double.html.
该函数将结果转换为solve
函数 - 这是一个sym
- 到双倍:
double(a)
ans =
5.98921078320145
0.834834535131742
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)