打印出π的象征而不是数值方程

84(30天)
我有下面的代码:
% % % % %常数
π= 3.14159265;
g = 9.80665;% (m / s ^ 2)
% % % % %复制常数
pi_ = 3.14159265;
g_ = 9.80665;% (m / s ^ 2)
% % %解决一些值的方程
an_Id = @ (T, m, d) T ^ 2 * m * g * d /(4 *π^ 2);
信谊T m d;
u_Id_1 = u_c (an_Id [T m d], [T1 m_bar d1_bar], [u_T1 u_m u_d1]);
u_Id_2 = u_c (an_Id [T m d], [T2 m_bar d2_bar], [u_T2 u_m u_d2]);
u_Id_3 = u_c (an_Id [T m d], [T3 m_bar d3_bar], [u_T3 u_m u_d3]);
% % %打印一般方程
disp (“u_c (Id_i) (T m d) ')
清晰的πg;
信谊Idπg;
dT = diff (an_Id T)
dm = diff (an_Id, m)
dd = diff (an_Id, d)
eq_Id = Id = =√dT ^ 2 + dm ^ 2 + dd ^ 2);
乳胶(eq_Id)
π= pi_;g = g_;
它意味着不确定性给一个方程的求解。一切工作正常,但问题是印刷乳胶的方程。具体地说,只要有一个数值常数π或g,某种形式的输出是比大整数,π和g而不是书面符号,即使我清除分配他们作为符号值。
u_c (Id_i) [T m d]
dT =
(5520653160719109 * T * d *米)/ 11112186650365012
dm =
(5520653160719109 * T ^ 2 * d) / 22224373300730024
dd =
(5520653160719109 * T ^ 2 *米)/ 22224373300730024
ans =
“\ mathrm {Id} = \√6{\压裂{30477611320957888346985997753881 \ T ^ 4 \ d ^ 2}{493922768610201541788451335040576} + \压裂{30477611320957888346985997753881 \ T ^ 4 \, m ^ 2}{493922768610201541788451335040576} + \压裂{30477611320957888346985997753881 \ T ^ 2 \ d ^ 2 \, m ^ 2} {123480692152550385447112833760144}}”
有什么方法我可以防止那些混乱的输出方程,得到一个干净的吗?
1评论
约翰D 'Errico
约翰D 'Errico 2021年3月20日
从不π定义为一个数字。approximatino你使用terrribly可怜的一个。和你想要的是π,不是一个近似。所以不要定义π。它已经存在于MATLAB。

登录置评。

接受的答案

康拉德Bolembach
康拉德Bolembach 2021年3月20日
我处理的方式是定义an_Id函数如下所示:
an_Id = @ (T, m, d) T ^ 2 * m *信谊(g) * d /(4 *信谊(π)^ 2);
这样我可以使用g和π象征性或数字,无论我需要。
1评论
保罗
保罗 2021年3月21日
你能给一个简单的代码示例演示如何使用an_Id与g或者π象征性的数字吗?

登录置评。

更多的答案(2)

明星黾
明星黾 2021年3月20日
当我试着运行发布代码,得到:
未被认可的T1的函数或变量。
然而,您可以得到更少的混乱的结果 vpa 函数。(我不能演示效果和你的代码)。
1评论
dpb
dpb 2021年3月20日
% % % % %常数
π= 3.14159265;
此外,不要别名装入的 π 返回完整的双精度。

登录置评。


保罗
保罗 2021年3月20日
编辑:保罗 2021年3月20日
如果我理解问题,这个想法似乎是定义一个函数,an_Id,可以用于数值评价和象征性。我认为你看到的问题是,当an_Id定义,需要在g的数值和π在工作区中定义它的定义,所以它永远不会看到g和π为对称的对象。一个方法是添加g和π作为参数,然后他们可以输入数字或符号对象:
an_Id = @ (T, m, d, g,π)T ^ 2 * m * g * d /(4 *π^ 2);
%计算数值
an_Id(1, 1, 1, 9.81,π)
%区分象征性地
信谊T m d g Id
dT = diff (an_Id T)
dm = diff (an_Id, m)
dd = diff (an_Id, d)
eq_Id = Id = =√dT ^ 2 + dm ^ 2 + dd ^ 2);
乳胶(eq_Id)
ans =
0.248490202882833
dT =
(T * d * g * m) /(2 *π^ 2)
dm =
d (T ^ 2 * * g) /(4 *π^ 2)
dd =
(T ^ 2 * g * m) /(4 *π^ 2)
ans =
“\ mathrm {Id} = \√6{\压裂{T ^ 4 \ d ^ 2 \ g ^ 2}{16 \ \π^ 4}+ \压裂{T ^ 4 \ g ^ 2 \, m ^ 2}{16 \ \π^ 4}+ \压裂{T ^ 2 \ d ^ 2 \ g ^ 2 \, m ^ 2}{4 \ \π^ 4}}”
我不知道什么u_c函数,希望它可以modeified接受an_Id的新形式

下载188bet金宝搏


释放

R2020b

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!