数学建模学习笔记(19)Matlab符号运算

% Matlab的符号运算

% 1.符号变量的创建
% syms 符号变量名
% 注释:可以用一个syms语句同时创建多个变量
syms y;
syms a b;

% 2.符号方程的创建
% 符号方程可以理解为就是参数方程,右边部分为符号变量运算表达式的方程就是符号方程
syms a b;
c=a*a+b+a;

% 3.符号变量的简单运算
% 符号变量的运算与一般变量的运算相同

% 4.符号表达式的化简方法:simplify
% 化简语法:simplify(符号表达式)
syms a;
y=(cot(a/2)-tan(a/2))*(1+tan(a)*tan(a/2));
simplify(y)

% 5.因式分解功能:factor函数
% ①factor(常数):表示对常数进行因式分解
factor(16)
% ②factor(符号表达式):表示对符号表达式进行因式分解
syms m n;
y=m^3-n^3;
factor(y)

% 6.多项式展开函数和合并函数:expand函数和collect函数
% ①展开语法:expand(待展开符号多项式)
syms m;
y=m*(m*2-3*m*m);
z=expand(y)
% ②合并语法:collect(待合并符号多项式,需要合并的符号)
collect(z,m)
& 备注:如果符号表达式过于复杂,可以将符号表达式复制到一个实时脚本中,这样可以得出看起来非常自然的结果。

% 7.计算分子和分母的函数:numden函数
% 使用语法:[分子名,分母名]=numden(符号表达式)
[z1,z2]=numden(sym(2.5))
% 此处的sym函数的作用是将其他数据类型转换为符号

% 8.符号函数的求导:diff
% ①一元函数求导语法:diff(符号函数表达式,导数阶数)
syms x;
diff(cos(x),10)
% ②多元函数求导语法:diff(符号函数表达式,求导符号,导数阶数)
syms x y;
diff(x*x*x+y*y*y,y,3)
% 如果需要先对某个自变量求偏导数,再对另一个自变量求偏导数,则可以使用以下语法
% 语法:diff(符号函数表达式,第一个求导的符号,第二个求导的符号....)
diff(x*x*x+y*y*y,x,y)
% 注意事项:如果diff函数的作用对象不是符号函数表达式而是一个矩阵,那么其作用就是求差分

% 9.符号函数的积分计算
% ①不定积分的计算:int(符号函数表达式,被积分变量)
syms x;
y=x*x;
int(y,x)
% ②定积分的计算:int(符号函数表达式,被积分变量,积分下限,积分上限)
syms x;
y=x*x;
int(y,x,0,2)
% 注意:不是所有的符号函数都可以计算积分,对于一些符号函数只能计算数值积分(积分的近似值)
% 计算数值积分的语法:integral(符号函数表达式,被积分变量,积分下限,积分上限)

% 10.单变量和多变量方程、方程组求解:solve函数
% ①单变量方程求解语法:answer=solve(符号函数方程,待求解符号)
syms x;
answer=solve(sin(x)==1,x)
% 注意事项:符号函数方程的等式要用两个等号进行表示
% 对于周期函数,如果需要求解出所有解,那么需要对该函数使用附加参数
% ②多变量方程求解语法:与单变量方程求解相同,只是用其他变量来表示该变量
% ③方程组求解语法:answer=solve(多个方程构成的向量,待求解符号构成的向量)
syms x y;
answer=solve([x==2*y+1,y==2],[x,y]);
answer.x
answer.y

% 11.二维符号函数图像的绘制:fplot函数
% 使用语法:fplot(符号函数表达式,符号区间)
syms x;
fplot(sin(x),[-3,3])

% 12.指定解在指定区间内的方程:vpasolve函数
% 使用语法:vpasolve(符号方程表达式,求解变量,求解区间)
syms x;
vpasolve(sin(x)==1,x,[0,2])


% Matlab求解微分方程的解析解(也就是函数表达式):dsolve函数
% 使用语法:dsolve(方程1,方程2...,初始条件,待求解自变量)
% 在微分方程中,用D表示一阶微分,用D2表示二阶微分,以此类推
% 初始条件可以省略
dsolve('y-Dy=2*x','x')

% 由于有些微分方程不存在解析解,因此只能退而求其次求出数值解:solver函数

你可能感兴趣的:(数学建模,matlab,学习,开发语言)