今天用matlab给了我三重惊喜,简直打开了新世界的大门:
1、虽然知道matlab有内置的符号工具箱,但以往用的很少,直到今天,需要求解一个方程组,方程本身到不是多么复杂,只不过变量众多,非常的恶心,手工求解出错可能性非常高,尝试了下用matlab来求解,求解起来是如此的顺利,这超出我的预料;
2、在live Script 模式下,符号变量的显示非常自然,类手写的显示方式,help文档说是采用了latex来显示数学公式,比以前用pretty函数来显示还要自然百倍,可读性极大的增强;
3、live script 模式下,可将代码及结果输出,可选HTML形式,下面的内容就完全是matlab生成的网页脚本,直接复制到了本博客的编辑器中,极大方便了博客写作。
%% define variables and equations
syms f0 f1 f2 f3 f4 f5 f6 f7 f8 V_x V_y rho F_x F_y
equ1 = f0 + f1 + f2 + f3 + f4 + f5 + f6 + f7 + f8 - rho == 0;
equ2 = f4 + 2 / 3 * rho * V_y - f2 == 0;
equ3 = 1 / rho * ( f1 + f5 + f8 - f3 - f6 - f7 + 0.5 * F_x ) - V_x == 0;
equ4 = 1 / rho * ( f2 + f5 + f6 - f4 - f7 - f8 + 0.5 * F_y ) - V_y == 0;
bottom_rho = solve( [ equ1, equ2, equ3, equ4 ], [ rho, f2, f5, f6 ] );
bottom_rho = bottom_rho.rho
bottom_f = solve( [ equ2, equ3, equ4 ], [ f2, f5, f6 ] );
top_rho = solve( [ equ1, equ2, equ3, equ4 ], [ rho, f4, f7, f8 ] );
top_f = solve( [ equ2, equ3, equ4 ], [ f4, f7, f8 ] );