今天用matlab给了我三重惊喜,简直打开了新世界的大门:

1、虽然知道matlab有内置的符号工具箱,但以往用的很少,直到今天,需要求解一个方程组,方程本身到不是多么复杂,只不过变量众多,非常的恶心,手工求解出错可能性非常高,尝试了下用matlab来求解,求解起来是如此的顺利,这超出我的预料;

2、在live Script 模式下,符号变量的显示非常自然,类手写的显示方式,help文档说是采用了latex来显示数学公式,比以前用pretty函数来显示还要自然百倍,可读性极大的增强;

3、live script 模式下,可将代码及结果输出,可选HTML形式,下面的内容就完全是matlab生成的网页脚本,直接复制到了本博客的编辑器中,极大方便了博客写作。

.rtcContent { padding: 30px }
.CodeBlock { background-color: rgba(247, 247, 247, 1); margin: 10px 0 }
.S0 { border-left: 1px solid rgba(233, 233, 233, 1); border-right: 1px solid rgba(233, 233, 233, 1); border-top: 1px solid rgba(233, 233, 233, 1); border-bottom: 0 none rgba(0, 0, 0, 1); border-radius: 4px 4px 0 0; padding: 6px 45px 0 13px; line-height: 17.2339992523193px; min-height: 18px; white-space: nowrap; color: rgba(0, 0, 0, 1); font-family: Menlo, Monaco, Consolas, “Courier New”, monospace; font-size: 14px }
.S1 { border-left: 1px solid rgba(233, 233, 233, 1); border-right: 1px solid rgba(233, 233, 233, 1); border-top: 0 none rgba(0, 0, 0, 1); border-bottom: 1px solid rgba(233, 233, 233, 1); border-radius: 0 0 4px 4px; padding: 0 45px 4px 13px; line-height: 17.2339992523193px; min-height: 18px; white-space: nowrap; color: rgba(0, 0, 0, 1); font-family: Menlo, Monaco, Consolas, “Courier New”, monospace; font-size: 14px }
.S2 { border-left: 1px solid rgba(233, 233, 233, 1); border-right: 1px solid rgba(233, 233, 233, 1); border-top: 0 none rgba(0, 0, 0, 1); border-bottom: 0 none rgba(0, 0, 0, 1); border-radius: 0; padding: 0 45px 0 13px; line-height: 17.2339992523193px; min-height: 18px; white-space: nowrap; color: rgba(0, 0, 0, 1); font-family: Menlo, Monaco, Consolas, “Courier New”, monospace; font-size: 14px }
.S3 { border-left: 1px solid rgba(233, 233, 233, 1); border-right: 1px solid rgba(233, 233, 233, 1); border-top: 0 none rgba(0, 0, 0, 1); border-bottom: 1px solid rgba(233, 233, 233, 1); border-radius: 0; padding: 0 45px 4px 13px; line-height: 17.2339992523193px; min-height: 18px; white-space: nowrap; color: rgba(0, 0, 0, 1); font-family: Menlo, Monaco, Consolas, “Courier New”, monospace; font-size: 14px }
.S4 { color: rgba(64, 64, 64, 1); padding: 10px 0 6px 17px; font-family: Menlo, Monaco, Consolas, “Courier New”, monospace; font-size: 14px; overflow-x: hidden; line-height: 17.2339992523193px }
.S5 { border-left: 1px solid rgba(233, 233, 233, 1); border-right: 1px solid rgba(233, 233, 233, 1); border-top: 1px solid rgba(233, 233, 233, 1); border-bottom: 0 none rgba(0, 0, 0, 1); border-radius: 0; padding: 6px 45px 0 13px; line-height: 17.2339992523193px; min-height: 18px; white-space: nowrap; color: rgba(0, 0, 0, 1); font-family: Menlo, Monaco, Consolas, “Courier New”, monospace; font-size: 14px }
.S6 { border: 1px solid rgba(233, 233, 233, 1); border-radius: 0; padding: 6px 45px 4px 13px; line-height: 17.2339992523193px; min-height: 18px; white-space: nowrap; color: rgba(0, 0, 0, 1); font-family: Menlo, Monaco, Consolas, “Courier New”, monospace; font-size: 14px }
.S7 { border: 1px solid rgba(233, 233, 233, 1); border-radius: 0 0 4px 4px; padding: 6px 45px 4px 13px; line-height: 17.2339992523193px; min-height: 18px; white-space: nowrap; color: rgba(0, 0, 0, 1); font-family: Menlo, Monaco, Consolas, “Courier New”, monospace; font-size: 14px }

clc;clear;
close all;
 
%% 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/f2/f5/f6/
% solve rho
bottom_rho = solve( [ equ1, equ2, equ3, equ4 ], [ rho, f2, f5, f6 ] );
bottom_rho = bottom_rho.rho
bottom_rho = 

 
% solve f2/f5/f6
bottom_f = solve( [ equ2, equ3, equ4 ], [ f2, f5, f6 ] );
bottom_f2 = bottom_f.f2
bottom_f2 = 

bottom_f5 = bottom_f.f5
bottom_f5 = 

bottom_f6 = bottom_f.f6
bottom_f6 = 

 
%% top rho/f4/f7/f8/
% solve rho
top_rho = solve( [ equ1, equ2, equ3, equ4 ], [ rho, f4, f7, f8 ] );
top_rho = top_rho.rho
top_rho = 

 
% solve f4/f7/f8
top_f = solve( [ equ2, equ3, equ4 ], [ f4, f7, f8 ] );
top_f4 = top_f.f4
top_f4 = 

top_f7 = top_f.f7
top_f7 = 

top_f8 = top_f.f8
top_f8 = 

 

 

 

版权声明:本文为kljfdsa原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/kljfdsa/p/9910945.html