%% 符号变量与符号表达式

%%%%%%%%%%%%%%%%%%%%%%%%%%%

%1.符号变量与符号表达式

%%%%%%%%%%%%%%%%%%%%%%%%%%%

clear all ;

clc;

close all;

% f =sym( 'sin(x)+5x')

% f —— 符号变量名

% sin(x)+5x—— 符号表达式

% ' '—— 符号标识

% 符号表达式一定要用' ' 单引号括起来matlab才能识别

% ' ' 的内容可以是符号表达式,也可以是符号方程。

% 例:

% f1=sym('a*x^2+b*x+c') —— 二次三项式

% f2=sym('a*x^2+b*x+c=0' )—— 方程

% f3=sym('Dy+y^2=1') ——微分方程

% 符号表达式或符号方程可以赋给符号变量,以后调用方便;也可以不赋给符号变量直接参与运算

% syms 命令用来建立多个符号量,一般调用格式为:

% syms 变量1 变量2 ... 变量n

%% 符号矩阵的创建

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%2.符号矩阵的创建

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% 数值矩阵A=[1,2;3,4]

% A=[a,b;c,d] —— 不识别

% @1.用matlab函数sym创建矩阵(symbolic的缩写)

% 命令格式:A=sym('[ ]')

% ※ 符号矩阵内容同数值矩阵

% ※ 需用sym指令定义

% ※ 需用' '标识

% 例如:

A = sym('[a , 2*b ; 3*a , 0]')

% A =

% [ a, 2*b]

% [3*a, 0]

% 这就完成了一个符号矩阵的创建。

% 注意:符号矩阵的每一行的两端都有方括号,这是与 matlab数值矩阵的一个重要区别。

%@2.用字符串直接创建矩阵(这种方法创建的没有什么用处)

% ※模仿matlab数值矩阵的创建方法

% ※需保证同一列中各元素字符串有相同的长度。

% 例:

A =['[ a,2*b]'; '[3*a, 0]']

% A =

% [ a, 2*b]

% [3*a, 0]

%@3.符号矩阵的修改

% a.直接修改

% 可用光标键找到所要修改的矩阵,直接修改

% b.指令修改

% ※用A1=sym(A,*,*,'new') 来修改。 这个经过测试,不能运行

% ※用A1=subs(A, 'new', 'old')来修改

% % 例如:A =[ a, 2*b]

% [3*a, 0]

A = sym('[a , 2*b ; 3*a , 0]')

% A1=sym(A,2,2,'4*b') %%等效于A(2,2)='4*b';

% A1 =[ a, 2*b]

% [3*a, 4*b]

A1=subs(A,'0','4*b')

A2=subs(A1, 'c', 'b')

% A2 =[ a, 2*c]

% [3*a, 4*c]

%@4.符号矩阵与数值矩阵的转换

% ※将数值矩阵转化为符号矩阵

% 函数调用格式:sym(A)

A=[1/3,2.5;1/0.7,2/5]

% A =

% 0.3333 2.5000

% 1.4286 0.4000

B=sym(A)

% ans =

% [ 1/3, 5/2]

% [10/7, 2/5]

% ※将符号矩阵转化为数值矩阵

% 函数调用格式: numeric(A)

% B =

% [ 1/3, 5/2]

% [10/7, 2/5]

%numeric(B) 这个函数不存在了

VPA(B,4) %发现这个函数可用

% R = VPA(S) numerically evaluates each element of the double matrix

% S using variable precision floating point arithmetic with D decimal

% digit accuracy, where D is the current setting of DIGITS.

% The resulting R is a SYM.

%

% VPA(S,D) uses D digits, instead of the current setting of DIGITS.

% D is an integer or the SYM representation of a number.

% ans =

% [ .3333, 2.500]

% [ 1.429, .4000]

%% 符号运算

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%3. 符号运算

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% 例1:

f=sym( '2*x^2+3*x-5'); g=sym( 'x^2+x-7');

h= f+g

% h=

% 3*x^2+4*x-12

% 例2:

f=sym('cos(x)');g=sym('sin(2*x)');

f/g+f*g

% ans =

% cos(x)/sin(2*x)+cos(x)*sin(2*x)

%% 查找符号变量

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%4.查找符号变量

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% % findsym(expr) 按字母顺序列出符号表达式 expr 中的所有符号变量

% % findsym(expr, N) 列出 expr 中离 x 最近的 N 个符号变量

% 若表达式中有两个符号变量与 x 的距离相等,则ASCII 码大者优先。

% ※常量 pi, i, j 不作为符号变量

% 例:

f=sym('2*w-3*y+z^2+5*a');

findsym(f)

% ans =

% a, w, y, z

findsym(f,3)

% ans =

% y,w,z

findsym(f,1)

% ans =

% y

%% 计算极限

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%5.计算极限

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% limit(f,x,a): 计算f(x)当x趋向于a的极限

% limit(f,a): 当默认变量趋向于 a 时的极限

% limit(f): 计算 a=0 时的极限

% limit(f,x,a,'right'): 计算右极限

% limit(f,x,a,'left'): 计算左极限

% 例:计算

syms x h n;

L=limit((log(x+h)-log(x))/h,h,0)

% L =

% 1/x

M=limit((1-x/n)^n,n,inf)

% M =

% exp(-x)

%% 计算导数

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%6.计算导数

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% g=diff(f,v):求符号表达式 f 关于 v 的导数

% g=diff(f):求符号表达式 f 关于默认变量的导数

% g=diff(f,v,n):求 f 关于 v 的 n 阶导数

syms x;

f=sin(x)+3*x^2;

g=diff(f,x)

% g =

% cos(x)+6*x

%%计算积分

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%7.计算积分

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% int(f,v,a,b): 计算定积分f(v)从a到b

% int(f,a,b): 计算关于默认变量的定积分

% int(f,v): 计算不定积分f(v)

% int(f): 计算关于默认变量的不定积分

f=(x^2+1)/(x^2-2*x+2)^2;

I=int(f,x)

% I =

% 3/2*atan(x-1)+1/4*(2*x-6)/(x^2-2*x+2)

K=int(exp(-x^2),x,0,inf)

% K =

% 1/2*pi^(1/2)

%%函数运算

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%8.函数运算

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% 1.合并、化简、展开等函数

% collect函数:将表达式中相同幂次的项合并;

% factor函数:将表达式因式分解;

% simplify函数:利用代数中的函数规则对表达式进行化简;

% numden函数:将表示式从有理数形式转变成分子与分母形式。

% 2.反函数

% finverse(f,v) 对指定自变量为v的函数f(v)求反函数

% 3.复合函数

% compose(f,g) 求f=f(x)和g=g(y)的复合函数f(g(y))

% compose(f,g,z) 求 f=f(x)和g=g(y)的复合函数f(g(z))

% 4.表达式替换函数(前面讲到了)

% subs(s)用赋值语句中给定值替换表达式中所有同名变量

% subs (s, old, new) 用符号或数值变量new替换s中的符号变量old

%%

% mtaylor(f,n) —— 泰勒级数展开

% ztrans(f) —— Z变换

% Invztrans(f) —— 反Z变换

% Laplace(f) —— 拉氏变换

% Invlaplace(f) —— 反拉氏变换

% fourier(f) —— 付氏变换

% Invfourier(f) —— 反付氏变换

%%

clear

f1 =sym('(exp(x)+x)*(x+2)');

f2 = sym('a^3-1');

f3 = sym('1/a^4+2/a^3+3/a^2+4/a+5');

f4 = sym('sin(x)^2+cos(x)^2');

collect(f1)

% ans =

% x^2+(exp(x)+2)*x+2*exp(x)

expand(f1)

% ans =

% exp(x)*x+2*exp(x)+x^2+2*x

factor(f2)

% ans =

% (a-1)*(a^2+a+1)

[m,n]=numden(f3)

%m为分子,n为分母

% m =

% 1+2*a+3*a^2+4*a^3+5*a^4

% n =

% a^4

simplify(f4)

% ans =

% 1

clear

syms x y

finverse(1/tan(x)) %求反函数,自变量为x

% ans =

% atan(1/x)

f = x^2+y;

finverse(f,y) %求反函数,自变量为y

% ans =

% -x^2+y

clear

syms x y z t u;

f = 1/(1 + x^2); g = sin(y); h = x^t; p = exp(-y/u);

compose(f,g) %求f = f(x) 和 g = g(y)的复合函数f(g(y))

% ans =

% 1/(1+sin(y)^2)

clear

syms a b

subs(a+b,a,4) %用4替代a+b中的a

% ans =

% 4+b

subs(cos(a)+sin(b),{a,b},{sym('alpha'),2}) %多重替换

% ans =

% cos(alpha)+sin(2)

f=sym('x^2+3*x+2')

% f =

% x^2+3*x+2

subs(f, 'x', 2)%求解f当x=2时的值

% ans =

% 12

%% 方程求解

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%9.方程求解

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% 1代数方程

% 代数方程的求解由函数solve实现:

% solve(f) 求解符号方程式f

% solve(f1,…,fn) 求解由f1,…,fn组成的代数方程组

%

% 2常微分方程

% 使用函数dsolve来求解常微分方程:

% dsolve('eq1, eq2, ...', 'cond1, cond2, ...', 'v')

clear

syms a b c x

f=sym('a*x*x+b*x+c=0')

solve(f)

% ans =

% [ 1/2/a*(-b+(b^2-4*c*a)^(1/2))]

% [ 1/2/a*(-b-(b^2-4*c*a)^(1/2))]

solve('1+x=sin(x)')

% ans =

% -1.9345632107520242675632614537689

dsolve( ' Dy=x ','x')%求微分方程y'=x的通解,指定x为自变量。

% ans =

% 1/2*x^2+C1

dsolve(' D2y=1+Dy ','y(0)=1','Dy(0)=0' ) %求微分方程y''=1+y'的解,加初始条件

% ans =

% -t+exp(t)

[x,y]=dsolve('Dx=y+x,Dy=2*x')%微分方程组的通解

% x =

% -1/2*C1*exp(-t)+C2*exp(2*t)

% y =

% C1*exp(-t)+C2*exp(2*t)

% ezplot(y)方程解y(t)的时间曲线图

%% funtool

funtool %该命令将生成三个图形窗口,Figure No.1用于显示函数f的图形,

% Figure No.2用于显示函数g的图形,

% Figure No.3为一可视化的、可操作与显示一元函数的计算器界面。

% 在该界面上由许多按钮,可以显示两个由用户输入的函数的计算结果:

% 加、乘、微分等。funtool还有一函数存储器,允许用户将函数存入,

% 以便后面调用。在开始时,

% funtool显示两个函数f(x) = x与g(x) = 1在区间[-2*pi, 2*pi]上的图形。

% Funtool同时在下面显示一控制面板,

% 允许用户对函数f、g进行保存、更正、重新输入、联合与转换等操作。

%% taylortool %该命令生成一图形用户界面,显示缺省函数f=x*cos(x)

% 在区间[-2*pi,2*pi]内的图形,同时显示函数f

% 的前N=7项的Taylor多项式级数和(在a=0附近的)图形,

% 通过更改f(x)项可得不同的函数图形。

% taylortool('f') %对指定的函数f,用图形用户界面显示出Taylor展开式

%% maple内核访问函数

%

% 可以访问maple内核的matlab函数:

% maple ——— 访问maple内核函数

% mapleinit —— maple函数初始化

% mpa ———— maple函数定义

% mhelp ——— maple函数帮助命令

% procread —— maple函数程序安装

% 具体的操作参看相关说明

matlab里的计算符号,Matlab符号运算总结相关推荐

  1. matlab里的function编程,MATLAB 元编程介绍

    这篇文章对 Matlab 中的元编程进行了简单的介绍.Matlab 是一个古老而又高度专业化的语言.由于这一原因,缺乏很多在现代或者通用语言中拥有的特性.然而,用一些简单的工具,我们可以发现 Matl ...

  2. 反应谱 matlab,冲击响应谱计算的matlab程序.doc

    冲击响应谱计算的matlab程序.doc disp( )disp( srs.mver2.0July3,2006 )disp( byTomIrvineEmail:tomirvine@ )disp( )d ...

  3. matlab里randn是什么,matlab中randn函数用法

    matlab中randn函数用法 MATLAB 中的randn函数 matlab函数 randn:产生正态分布的随机数或矩阵的函数 randn:产生均值为0,方差σ^2 = 1,标准差σ = 1的正态 ...

  4. matlab编写数学公式计算,关于MATLAB Function实现数学运算的相关介绍

    描述 其实也就是使用 Simulink 库里相应的模块,以及使用 Stateflow 流程图向导.在这一篇,我们介绍使用MATLAB Function的方式. 其实,如果想在 Simulink 里嵌套 ...

  5. matlab里怎么计算期望,§7.4.2 利用MATLAB计算随机变量的期望和方差.pdf

    §§7.4.27.4.2 利用利用MATLABMATLAB 计算随机变量的期望和方差 一一....用用用用MATLABMATLABMATLABMATLAB计算离散型随机计算离散型随机计算离散型随机计算 ...

  6. matlab里面的vpa函数,matlab用vpa函数之后怎么科学计数法

    MATLAB算π出错我输入vpa(pi,300) .结果是:ans =3.14159265358979311599796 vpa(pi,300)这样就可以了ans=3.1415926535897932 ...

  7. matlab里simulink,如何运用MATLAB中的Simulink?

    摘要:文中首先分析了MATLAB/Simulink中DSP Builder模块库在FPGA设计中优点,然后结合FSK信号的产生原理,给出了如何利用DSP Builder模块库建立FSK信号发生器模型, ...

  8. matlab协方差cov计算代码,MATLAB 协方差 [cov] 和相关系数 [corrcoef] 说明

    A,B为两个长度相同的向量html 求协方差函数 S=cov(A,B);学习 b和c数值上是相等的.测试 求相关系数spa R=corrcoef(A,B)3d 数值上,f和g是相同到.code 相关系 ...

  9. matlab里脚本循环语句,Matlab中while循环语句的用

    Matlab 中while循环语句的用法? matlab while循环的用法.while循环的使用与for循环是类似的.但是其中还是有不少的区别,例如对于循环次数而言,while循环的次数是不定的, ...

  10. matlab里tao怎么输入,matlab怎么运行程序

    本文收集整理关于matlab怎么运行程序的相关议题,使用内容导航快速到达. 内容导航: Q1:如何运行matlab程序 大哥你少了个赋值的运算,你的运行环境没错,就如楼上的,但是你想看的是结果.数据空 ...

最新文章

  1. jgit 查看当前分支_分支 (branch)
  2. 第三讲、Linux常用命令
  3. 在mysql-workbench中运行function
  4. 什么是心跳线?心跳线,主要用于主从服务器之间,是连接工作机与备份机的网线
  5. HttpWebRequest自动登录网站并获取网站内容(不包含验证码的网站)
  6. powerbuilder提示不是下拉窗口_制作简易工资查询模板,下拉菜单选择姓名即可显示...
  7. ubuntu 编译android .img_全网可用交叉编译工具链大全
  8. idea redis 插件_Redis客户端RDM收费后,还有那些开源的替代品呢?
  9. 3dsmax VRay分布式渲染
  10. 外链对网站的作用(2022网站还有必要做外链吗)
  11. 解决Page index must not be less than zero问题
  12. 未来的计算机小报,未来科技生活手抄报图片实用美观
  13. Apple Watch Series 8功能介绍 watch series 8续航
  14. 全基因组组装,注释与评估软件
  15. 萨提亚亲密关系(摘抄)
  16. 数字分解的套路与陷阱
  17. Docker更改镜像源
  18. 台式计算机重装系统,台式机重装系统其实很简单!
  19. LABVIEW_课堂笔记 随机(十二)变量
  20. 华为百度挺进“云手机”!5G时代的超级入口来了

热门文章

  1. 服务器修改动态磁盘,如何创建动态磁盘
  2. 游程编码用matlab实现代码_二值图像游程编码算法的Matlab实现 -
  3. 整数规划--指派问题
  4. 超实用的HTML 5接口全方位测试总结文
  5. 怎么使用小爱同学音响_小爱同学语音唤醒功能怎么设置,小爱同学音箱的优缺点是什么...
  6. 拼多多sdk php,学习猿地-【扩展分享】拼多多 API SDK【拼多多开放平台】
  7. 小程序项目:基于微信小程序的每日签到打卡——计算机毕业设计
  8. 使用CLion的C语言开发环境配置
  9. mac brew加速
  10. Ubuntu安装MinGW32