MATLAB符号数学计算
2017-08-17 10:37
573 查看
符号计算 存放的是精确数据,耗存储空间 ,运行速度慢,但结果精度高;数值计算则是以一定精度来计算的,计算结果有误差,但是运行速度快。两者的区别是: 数值计算的表达式、矩阵变量中不允许有未定义的自由变量 , 而符号计算可以含有未定义的符号变量。
一、符号对象和符号表达式
二、符号表达式的操作
三、符号表达式的替换
四、符号函数的操作
五、符号微积分
六、符号积分变换
七、符号代数方程和微分方程求解
一、符号对象和符号表达式
close all;clear all;clc; %% 符号对象的创建 syms x y z;%符号变量 a=sym(2/3,'f');%符号常量 b=2*y^2+y-1;%符号表达式 c=[1 2+y 2;2+z 1 1+y];%符号矩阵 %% 运算符和函数 syms a b c d e f g h; a2=[a b;c d]; b2=[e f;g h]; c2=a2*b2;%符号计算和数值计算几乎相同 %% 类别识别函数 syms x; a3=class(x);%返回符号对象的类别 b3=isa(x,'sym');%返回1或者0 whos x;%列出变量的信息 %% 变量的确定 syms a b c; a4=3*a+b-c; symvar(a4);%查找表达式中所有符号变量 symvar(a4,2);%查找表达式中距离x最近的2个符号变量 %% 符号精度计算 syms x; a5=2*x^2+3*x-4; b5=solve(a5); d5=vpa(b5,6);%求近似解,精度为6位
二、符号表达式的操作
close all;clear all;clc; %% 符号表达式的显示 syms x; a=x^2+2/x+1; pretty(a); %% 符号表达式的合并 syms x y; a2=2*x+y+x*cos(y); collect(a2); %% 符号表达式的展开 syms x y; a3=exp((x+y)^2); expand(a3); %% 符号表达式的嵌套 syms x y; a4=[x^2+x;y^3-2*y]; horner(a4); %% 符号表达式分解 syms x y; a5=2*x^2-7*x*y-22*y^2-5*x+35*y-3; factor(a5); %% 符号表达式化简 syms x; a6=(x^3-1)/(x-1); simplify(a6);
三、符号表达式的替换
close all;clear all;clc; %% 符号表达式的替换 syms x y; a=x^2+x*y+y^2; x=2; subs(a);%用工作区中的变量替换符号表达式中的默认变量 subs(a,'t');%用新的变量替换符号表达式中的默认变量 subs(a,{'x','y'},{3,4});%用新的变量替换符号表达式中指定的变量
四、符号函数的操作
close all;clear all;clc; %% 复合函数 syms x y; a=x+x^-1; b=sin(x); c=1+y^2; compose(a,b);%返回复合函数a(b(y)) compose(a,c,'x','t');%返回自变量为t的复合函数a(c(t)) %% 反函数 syms x y; a2=1/(sin(x)+cos(x)); b2=x^2+2*x*y+y^2; a22=finverse(a2);%返回a2的反函数 b22=finverse(b2,y);%返回自变量为y的b2的反函数,满足b22(b2(y))=y
五、符号微积分
close all;clear all;clc; %% 符号微分 syms x y z; a=exp(x*sin(y))+log(z); diff(a,z);%对z求微分 diff(a,x,2);%对z求二阶微分 b=[x^2+y^2;y*z]; jacobian(b,[x y]);%b是列向量,[x y]是指定进行变换的行向量 %% 符号积分 syms x y; a2=x*y+(x*y)^-1; int(a2,y);%对y求不定积分 int(a2,y,1,2);%对y求定积分 %% 符号级数求和 syms x n; a3=x^2; b3=symsum(a3,x,0,n-1);%求x从0到n-1的有限和 %% 泰勒级数 syms x y; a4=sin(x)+1/cos(y); taylor(a4,x,'order',4)%n-1阶泰勒级数 taylor(a4,x,'ExpansionPoint',1,'order',4)%n-1阶泰勒级数在ExpansionPoint处展开
六、符号积分变换
%% 傅里叶变换及其逆变换 syms t w; a=sin(t)*cos(t); b=fourier(a,t,w);%傅里叶变换 c=ifourier(b,w,t);%傅里叶逆变换 simplify(c); %% 拉普拉斯变换及其逆变换 syms s t; syms a positive; a2=exp(2*t)+5*dirac(a-t); b2=laplace(a2,t,s);%拉普拉斯变换 ilaplace(b2,s,t);%拉普拉斯逆变换 %% Z变换及其逆变换 syms a b n w; a3=sin(a*n)+cos(b*n); b3=ztrans(a3);%Z变换 c3=ztrans(a3,a,w);%指定自变量,用w代替复频率z iztrans(c3,w,n);%Z逆变换
七、符号代数方程和微分方程求解
close all;clear all;clc; %% 符号代数方程求解 syms x a b c; a1=a*x^2+b*x+c; solve(a1);%解方程 solve(a1,a);%指定变量,解方程 syms x y; a11='x^2+y^2=25'; b11='x*y==12'; [x,y]=solve(a11,b11);%联立方程式求解 syms x y a b; a12='x^2+y^2==a^2'; b12='x*y==b'; s=solve(a12,b12,x,y);%指定多个自变量,解为矩阵结构 s.x; %% 符号微分方程求解 syms x; a2='a*Dx+b*x=0'; dsolve(a2); dsolve(a2,'x(0)=1'); dsolve(a2,'x(0)=1','m'); syms x y; a22='Dx-3*x+2*y=0'; b22='Dy-2*x+y=0'; [x,y]=dsolve(a22,b22); [x,y]=dsolve(a22,b22,'x(0)=1','y(0)=1');
相关文章推荐
- MATLAB的符号计算
- MATLAB程序设计教程(9)——MATLAB符号计算
- MATLAB 符号计算
- MATLAB的符号计算
- Matlab学习笔记--符号计算
- MATLAB数学公式的计算
- matlab的符号计算
- MATLAB符号计算
- 在Matlab图片里输入数学公式、符号和希腊字母的方法
- MATLAB学习笔记(三):符号计算(积分+导数)
- MATLAB符号计算
- Matlab符号计算(实例)
- 【书单】matlab 科学计算、数值分析以及数学物理问题
- MATLAB符号计算与数值计算 之转换
- 【数模学习】Matlab 符号微积分 计算微分、雅可比矩阵、不定积分与定积分、求解微分方程
- Matlab符号计算
- MATLAB学习笔记(二):符号计算(创建符号对象)
- Matlab符号计算结果过长无法在屏幕中显示的问题
- 用matlab符号计算求解二元函数极值
- MATLAB符号计算