wxMaxima使用solve求解后如何获取F_Br表达式的数值结果
问题原因
solve()函数返回的是包含等式的结果列表,并不会直接为F_By、F_Bz变量赋值,你后续计算时这两个变量仍处于未赋值的符号状态,所以只能输出符号表达式。
解决方法
方法1:使用ev函数代入解计算
如果不想改动原有的solve调用逻辑,可以直接把solve结果作为参数传入ev完成值代入:
/* 代入两个解计算F_Br */ F_Br: ev(sqrt(F_By^2 + F_Bz^2), solve(M_A[2]), solve(M_A[3])); /* 转换为浮点数值 */ float(%);
方法2:提前为变量赋值
如果后续还要多次用到这两个变量的值,可以先把解赋值给对应变量,后续所有调用都会自动用数值计算:
/* first()取列表首个解,rhs()取等式右侧的数值,完成变量赋值 */ F_Bz: rhs(first(solve(M_A[2]))); F_By: rhs(first(solve(M_A[3]))); /* 直接计算即可得到数值结果 */ F_Br: sqrt(F_By^2 + F_Bz^2); float(F_Br);
执行完上述代码后即可得到F_Br的浮点数值,约为3442.22。
内容的提问来源于stack exchange,提问作者mily
相关产品推荐
相关产品推荐

