Matlab学习笔记--符号计算

MATLAB学习笔记(五):符号计算符号矩阵+代数方程组求解) 2.6 .1 符号矩阵分析 常用的矩阵分析指令如下: det(A) 行列式A diag(A) 取对角元素构成向,或根据向构成对角矩阵 [V,D]=eig(A) 特征值分解,使 AV=VD (没看懂) expm(A) 矩阵指数e^A inv(A) A的逆矩阵 [V,J]=jordan(A) Jordan分解,使AV=VJ poly(A) 矩阵的特征多项式 rank 阅读详情

符号变量的创建

>> sysm q w e r;               %定义符号变量
>> q=w*e+r;
q = r + e*w

>>f1=sym('a+x^2+b*x+c')        %创建符号变量
f1 = x^2 + b*x + a + c

%'a+x^2+b*x+c'只能写在一行。可以使用pi、inf/INF、i/j、*、/、exp()等特殊变量和函数

数值计算与符号计算的对比

>> a=[1 2 3;4 5 6;7 8 9];b=[1;2;3];
>> c=a*b
c =
    14
    32
    50

>> syms x y;
>> z=x*y
z = x*y

>>f1=sym('a+x^2+b*x+c')     
f1 = x^2 + b*x + a + c

符号表达式的运算

>> f1=sym('1/(a+b)');
>> f2=sym('2*a/(a+b)');
>> f3=sym('(a+1)*(b+1)*(a-b)');
>> f1+f2                                    %符号加
ans = (2*a)/(a + b) + 1/(a + b)

>> f1-f2                                    %符号减
ans = 1/(a + b) - (2*a)/(a + b)

>> f1*f3                                    %符号乘
ans = ((a - b)*(a + 1)*(b + 1))/(a + b)

>> f1/f3                                    %符号除
ans = 1/((a + b)*(a - b)*(a + 1)*(b + 1))

>> f1^2                                     %符号幂
ans = 1/(a + b)^2

函数运算

合并、展开、因式分解、分数形式提取、化解

函数 具体说明
collect函数 将符号表达式中相同幂次的项进行合并
expand函数 将符号表达式展开
factor函数 对符号表达式进行因式分解
numden函数 将符号表达式转换为分子与分母形式
simplify函数 利用代数中的函数规则对符号表达式进行化解
>> 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 =2*x + 2*exp(x) + x*exp(x) + x^2

>> factor(f2)                             %因式分解
ans =[ a - 1, a^2 + a + 1]

>> [m,n]=numden(f3)                       %分数形式提取
m =5*a^4 + 4*a^3 + 3*a^2 + 2*a + 1
n =a^4

>> simplify(f4)                           %化简
ans =1

%——————————————————————————————————————————————————————————————
%合并同类项,默认按x合并,也可以指定变量
>> f6=sym('a*x^2+b*x*y+c*y^2+d*y*x');
>> collect(f6) 
ans = a*x^2 + (b*y + d*y)*x + c*y^2

>> collect(f6,'y')
ans = c*y^2 + (b*x + d*x)*y + a*x^2

%因式分解后的因式会存放数组中
>> f7=sym('x^4-1');
>> factor(f7)
ans = [ x - 1, x + 1, x^2 + 1]

反函数

>> syms x y;
>> finverse(1/tan(x))
ans = atan(1/x)

>> f=x^2+y;
>> finverse(f,x)                %求反函数,自变量为x
ans = (x - y)^(1/2)

>> finverse(f,y)                %求反函数,自变量为y
ans = - x^2 + y

复合函数

函数 具体说明
compose(f,g) 求f=f(x)和g=g(x)的复合函数f(g(x));
compose(f,g,z) 求f=f(x)和g=g(x)的复合函数f(g(z));
>> syms x y z
>> f=1/(1+x^2);
>> g=sin(y);


>> compose(f,g)
 ans = 1/(sin(y)^2 + 1)

>> compose(f,g,z)
 ans = 1/(sin(z)^2 + 1)

表达式替换

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

>> syms a b c;
>> y=a^2+b+c;

>> subs(y,'a','z')
ans = z^2 + b + c

>> subs(y,a,'z')                      %单个替换
ans = z^2 + b + c

>> subs(y,{
   
   'z','b'},{
   
   'z','sin(x)'})   %多重替换
ans = a^2 + c + sin(x)

%tips:变量old可以用'a'也可以直接用a,即使被替换成了'a'的形式,依然可以在下一次的调用中使用a,new变量就只能使用数值或者符号,所以只能使用'a'的形式

%——————————————————————————————————————————————————————————————

%表达式替换也可以用来求解函数值

>> syms x;
>> y=x^2+3*x+4;
>> subs(y,'x',2)

ans = 14

符号微积分

函数的极限

limitf)
limv0f(v)
limitf,a
limvaf(v)
limitf,x,a
limxaf(x)
limitf,x,a,right
limxa+f(x)
limitf,x,a,left
limxaf(x)

limx
MATLAB学习笔记(三):符号计算(积分+导数) 2.3 .1符号微积分  求极限   limit(f,x,a) 求f(x)中x趋近于a的极限值 例如: >> clear >> syms k x >> lim_t=limit((1-1/x)^(k*x),x,inf) lim_t = 1/exp(k) 求导数 diff(f,x,n) 求f(x)的n阶导数 >> clear >> syms x >> dfdx=diff(x^3, 阅读详情

相关推荐

Matlab中利用finverse求解反函数

matlab中求解反函数使用的是finverse函数,其基本用法如下: syms x % 定义自变 f(x) = 1/tan(x); % 定义函数 g = finverse(f) % 求解反函数 当然当函数有多个自变时,还需要指定自变: syms u v % 自变u,v finverse(exp(u-2*v), u) % 指定对u求解反函数 当然,这些都不是小编想要说的,看到这里的同学都是很有耐心的。 小编想讲的是如何对一个自变

warnerchang的博客 1万+

MATLAB符号运算

MATLAB符号运算

2302_78896863的博客 2220

2.利用matlab建立符号函数符号方程(matlab程序)

符号函数Matlab一个非常重要的功能,可以用来表示数学上的函数,同时也是进行数值计算。创建符号函数的方法有多种,本文给出了四种生成符号函数的方法及求符号函数函数值的方法。四种生成符号函数的方法:有利用字符串表达式生成符号函数、利用syms定义符号生成符号函数、利用sym和@生成符号函数法、利用函数文件生成符号函数等方法。求符号函数函数值,可以使用命令“matlabFunction”来把符号函数转换成可以像数学上计算函数值的表示形式来计算自变在某些点处的函数值。此时,系统会自动识别x为自变

m0_57943157的博客 2095

matlab符号函数教程,MATLAB程序设计教程(9)——MATLAB符号计算

MATLAB程序设计教程(9)——MATLAB符号计算第9章MATLAB符号计算9.1 符号对象9.2 符号微积分9.3 级 数9.4 符号方程求解9.1符号对象9.1.1 建立符号对象1.建立符号符号MATLAB提供了两个建立符号对象的函数:sym和syms,两个函数的用法不同。(1) sym函数sym函数用来建立单个符号,一般调用格式为:符号名=sym(‘符号字符串’...

weixin_28799111的博客 3913

关于matlab-finverse的踩坑记录

finverse求解反函数结果不唯一的情况

qq_36756384的博客 1607

MATLAB学习笔记——7 MATLAB符号计算

MATLAB学习笔记——7 MATLAB符号计算 一下是.m文件内笔记的内容 %% 7.1 符号对象 %% 1. 符号对象的建立 %(1)sym函数 调用格式:符号对象名=sym(A) %例7.1.1 t=sym(2); t+1/2 pause(2) sin(sym(pi/3)) pause(2) sin(pi/3) pause(2) %% a=5; b=-8; x=sym('a'); y=sym...

Martin的博客 1083

MATLAB学习笔记(九)——MATLAB符号计算

(一)符号对象 一、建立符号对象 1、建立符号符号(sym,syms): 只可以建立一个符号 可以一次性建立多个符号 PS:符号计算的结果是精确的数学表达式,而数值常是进行约分后的常数 2、建立符号表达式: (1)利用单引号来生成符号表达式: y='1/sqrt(2*x)'; %符号表达式g='cos(x^2)-sin(x)=0’ %符号方程 (2)...

weixin_30314793的博客 345

matlab学习笔记符号计算

matlab规则: 1 任何基本符号对象包括数字、参数、变、表达式都必须借助专门的符号函数指令sym或syms定义。 2 任何包含符号对象的表达式或者方程,将继承符号对象的属性。 类似c语言的强制类型转换? 基本符号分为自由符号符号参数。 对于一个方程,系统按照与小写x的ascii码距离来规定自由符号,可用 symvar(Eq)输出一个 symvar(Eq,n)输出n

673

matlab中化简为既约分时,MATLAB学习笔记(九)——MATLAB符号计算

(一)符号对象一、建立符号对象1、建立符号符号(sym,syms): 只可以建立一个符号 可以一次性建立多个符号PS:符号计算的结果是精确的数学表达式,而数值常是进行约分后的常数2、建立符号表达式:(1)利用单引号来生成符号表达式:y='1/sqrt(2*x)'; %符号表达式g='cos(x^2)-sin(x)=0’ %符号方程(2)用sym函数建立符号...

weixin_31976493的博客 2356

matlab 1到无穷_从零开始的matlab学习笔记——(6)符号计算与极限

上一节总算是把那些无聊的内容给说完了,从这节开始我们将接触到matlab许多强悍的功能。按理说我应该先把图像绘制部分记录完,再记录求极限内容。但是图像绘制内容有些多,而求极限功能感觉用处很大(尤其是对大一学生),所以这里我就先把符号计算给搞完。 首先了解一下符号计算符号计算就是把数字给符号化,呃,这个可能不大好理解,还是给几个例子吧。 比如前面我们提到过matlab能计算三角...

weixin_39626237的博客 2130

matlab符号编程,MATLAB学习笔记(2):符号计算_1

MATLAB学习笔记(二):符号计算_-_12.1 符号对象和符号表达式创建一个基本符号对象syms a创建一个基本的符号数字sym('num')sc=sym('num')符号类数字与数值类数字的差别>> clear>> a=5+pi,b=sym('5+pi'),ca=class(a),cb=class(b),vpa(a-b)a =8.1416b =pi + 5ca =d...

weixin_33416697的博客 239

matlab disp函数_从零开始的matlab学习笔记——(13)符号计算中的多项式

matlab应用——求极限,求导,求积分,解方程....更多内容尽在个人专栏:matlab学习上一节我们算是简单了解了一下怎么用matlab解方程,这一节我么再回到多项式与符号计算符号计算中的多项式:之前我们知道matlab通过系数矩阵进行多项式计算,这节我们再来看看用符号计算更直观的表示多项式。简单代码(加减乘除):syms f g x;f=3*x^2+2*x+2;g=3*x+1;ans1=f...

weixin_39954682的博客 300

disp语句怎么格式 matlab_从零开始的matlab学习笔记——(13)符号计算中的多项式...

matlab应用——求极限,求导,求积分,解方程....更多内容尽在个人专栏:matlab学习上一节我们算是简单了解了一下怎么用matlab解方程,这一节我么再回到多项式与符号计算符号计算中的多项式:之前我们知道matlab通过系数矩阵进行多项式计算,这节我们再来看看用符号计算更直观的表示多项式。简单代码(加减乘除):syms f g x;f=3*x^2+2*x+2;g=3*x+1;ans1=f...

weixin_36473811的博客 177

matlab图像导数求积分_MATLAB学习笔记(三):符号计算(积分+导数)

2.3 .1符号微积分求极限limit(f,x,a) 求f(x)中x趋近于a的极限值例如:>> clear>> syms k x>> lim_t=limit((1-1/x)^(k*x),x,inf)lim_t =1/exp(k)求导数diff(f,x,n) 求f(x)的n阶导数>> clear>> syms x>> dfdx=...

weixin_35676444的博客 658

MATLAB学习笔记(二):符号计算(创建符号对象)

2.1 符号对象和符号表达式    创建一个基本符号对象  syms a 创建一个基本的符号数字 sym('num') sc=sym('num') 符号类数字与数值类数字的差别 >> clear >> a=5+pi,b=sym('5+pi'),ca=class(a),cb=class(b),vpa(a-b) a = 8.1416 b = pi + 5 ca =

Orz~~Orz 2908

matlab符号对象,MATLAB学习笔记(二):符号计算(创建符号对象)

2.1 符号对象和符号表达式创建一个基本符号对象syms a创建一个基本的符号数字sym('num')sc=sym('num')符号类数字与数值类数字的差别>> clear>> a=5+pi,b=sym('5+pi'),ca=class(a),cb=class(b),vpa(a-b)a =8.1416b =pi + 5ca =doublecb =symans =-0.00...

weixin_39827798的博客 225
上一篇: Matlab学习笔记--数值计算
下一篇: 机器学习--特征缩放/均值归一化
runnerxin
博客等级 码龄10年 12粉丝 39原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值