MATLAB 解代数方程组

今天用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
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 = 
 


 

 

posted @ 2018-11-05 19:22  药否  阅读(2753)  评论(0编辑  收藏  举报