今天用matlab給了我三重驚喜,簡直打開了新世界的大門:
1、雖然知道matlab有內置的符號工具箱,但以往用的很少,直到今天,需要求解一個方程組,方程本身到不是多么復雜,只不過變量眾多,非常的惡心,手工求解出錯可能性非常高,嘗試了下用matlab來求解,求解起來是如此的順利,這超出我的預料;
2、在live Script 模式下,符號變量的顯示非常自然,類手寫的顯示方式,help文檔說是采用了latex來顯示數學公式,比以前用pretty函數來顯示還要自然百倍,可讀性極大的增強;
3、live script 模式下,可將代碼及結果輸出,可選HTML形式,下面的內容就完全是matlab生成的網頁腳本,直接復制到了本博客的編輯器中,極大方便了博客寫作。
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
% solve f2/f5/f6
bottom_f = solve( [ equ2, equ3, equ4 ], [ f2, f5, f6 ] );
bottom_f2 = bottom_f.f2
bottom_f5 = bottom_f.f5
bottom_f6 = bottom_f.f6
%% top rho/f4/f7/f8/
% solve rho
top_rho = solve( [ equ1, equ2, equ3, equ4 ], [ rho, f4, f7, f8 ] );
top_rho = top_rho.rho
% solve f4/f7/f8
top_f = solve( [ equ2, equ3, equ4 ], [ f4, f7, f8 ] );
top_f4 = top_f.f4
top_f7 = top_f.f7
top_f8 = top_f.f8