MATLAB多项式与符号运算
matlab中多项式的表示
matlab中多项式的表示多项式是数学中常见且重要的一种数学表达式, matlab中也提供了多项式的表示方法。
本文将围绕matlab中多项式的表示进行介绍,主要包括以下部分:一、多项式的创建在matlab中,创建多项式主要有两种方法:手动输入系数和使用符号变量。
下面分别进行介绍。
1.手动输入系数在matlab中,我们可以手动输入多项式的系数创建多项式。
比如,我们创建一个3次曲线函数y=ax^3+bx^2+cx+d,可以通过输入命令:> a=2; b=3; c=1; d=4;> poly=polyfit(x,y,3);在输入命令后,polyfit函数可以给出调整后最佳拟合曲线的系数,从而得到多项式。
2.使用符号变量在matlab中,我们还可以使用符号变量来创建一个多项式,比如我们想创建一个2次多项式函数y=ax^2+bx+c,可以通过输入命令:syms x a b cf=a*x^2+b*x+c;在输入命令后,输入符号变量和多项式表达式即可创建多项式。
二、多项式的基本运算在matlab中,多项式也可以进行基本的数学运算,比如加减乘除和求导等等。
1.加法和减法在matlab中,多项式的加法和减法可以用函数polyadd和polysub来表示,比如我们想计算多项式P(x)=2x^2+3x+1和Q(x)=-4x^2+2x-5的和与差,可以输入命令:p=[2,3,1];q=[-4,2,-5];sum=polyadd(p,q)diff=polysub(p,q)在输入命令后,polyadd和polysub函数可以给出两个多项式的和与差。
2.乘法和除法在matlab中,多项式的乘法和除法可以用函数polyval和deconv来表示,比如我们想计算多项式P(x)=x^3+3x^2+2x+1和Q(x)=x+2的积和商,可以输入命令:p=[1,3,2,1];q=[1,2];prod=conv(p,q)div=deconv(p,q)在输入命令后,conv和deconv函数可以给出两个多项式的积和商。
MATLAB的符号计算
符号数学工具箱中的工具是建立在功能强大 符号数学工具箱中的工具是建立在功能强大 的称作Maple软件的基础上。它最初是由加拿 软件的基础上。 大的滑铁卢( 大的滑铁卢 ( Waterloo ) 大学开发的。 当要 大学开发的 。 求MATLAB进行符号运算时,它就请求Maple 进行符号运算时, 去计算并将结果返回到MATLAB命令窗口。 命令窗口。 因此, 因此 , 在 MATLAB 中的符号运算是 MATLAB 处理数字的自然扩展。 处理数字的自然扩展。
积分 运用函数可以求得符号表达式的积分,该函数用 以演算函数的积分项,这个函数要找出一符号表 达式F使得diff(F)=f。相关的用法如下: 达式F使得diff(F)=f。相关的用法如下: ①int(f)返回f对预设独立变量的积分值。 int(f)返回f ② int(f,’t’)返回f对独立变量t的积分值。 int(f,’ 返回f对独立变量t ③ int(f,a,b)返回f对预设独立变量的积分值,积分 int(f,a,b)返回f对预设独立变量的积分值, 区间为[a,b], 区间为[a,b],a和b为数值表达式。 ④ int(f,’t’,a,b)返回f对独立变量t的积分值,积分区 int(f,’ ,a,b)返回f对独立变量t的积分值, 间为[a,b], 间为[a,b],a和b为数值表达式。 ⑤ int(f,’m’,’n’)返回f对预设独立变量的积分值,积 int(f,’ 返回f对预设独立变量的积分值, 分区间为[m,n], 分区间为[m,n],m和n为符号表达式。
左趋近于a
lim f ( x )
x →a −
limit(f,x,a,’left’)
lim f ( x )
x →a +
右趋近于a limit(f,x,a,’right’)
实验四MATLAB符号运算
实验四MATLAB符号运算实验四MATLAB符号运算⼀、实验⽬的:1、掌握定义符号对象的⽅法;2、掌握符号表达式的运算法则以及符号矩阵运算。
3、掌握求符号函数极限及导数的⽅法。
4、掌握求符号函数定积分和不定积分的⽅法。
⼆、实验原理1、符号常量、符号变量、符号表达式的创建(1) 使⽤sym( )创建输⼊以下命令,观察Workspace 中A、B、f是什么类型的数据,占⽤多少字节的内存空间。
>>A=sym('1') %符号常量>>B=sym('x') %符号变量>>f=sym('2*x^2+3y-1') %符号表达式>>clear>>f1=sym('1+2') %有单引号,表⽰字符串>>f2=sym(1+2) %⽆单引号>>f3=sym('2*x+3')>>f4=sym(2*x+3) %为什么会出错>>x=1>>f4=sym(2*x+3)通过看MATLAB 的帮助可知,sym( )的参数可以是字符串或数值类型,⽆论是哪种类型都会⽣成符号类型数据。
(2) 使⽤syms 创建>>clear>>syms x y z %注意观察x,y,z都是什么类型的,它们的内容是什么>>x,y,z>>f1=x^2+2*x+1>>f2=exp(y)+exp(z)^2>>f3=f1+f2通过以上实验,知道⽣成符号表达式的第⼆种⽅法:由符号类型的变量经过运算(加减乘除等)得到。
⼜如:>>f1=sym('x^2+y +sin(2)')>>syms x y>>f2=x^2+y+sin(2)>>x=sym('2') , y=sym('1')>>f3=x^2+y+sin(2)>>y=sym('w')>>f4=x^2+y+sin(2)(3)符号矩阵创建>>syms a1 a2 a3 a4>>A=[a1 a2;a3 a4]>>A(1),A(3)或者>>B=sym('[ b1 b2 ;b3 b4] ')>>c1=sym('sin(x) ')>>c2=sym('x^2')>>c3=sym('3*y+z')>>c4=sym('3 ')>>C=[c1 c2; c3 c4]2、符号算术运算(1) 符号量相乘、相除符号量相乘运算和数值量相乘⼀样,分成矩阵乘和数组乘。
MATLAB_简介(5)_MATLAB_符号数学1
Examples: taylor(exp(-x)) returns 1-x+1/2*x^2-1/6*x^3+1/24*x^4-1/120*x^5 taylor(log(x),6,1) returns x-1-1/2*(x-1)^2+1/3*(x-1)^3-1/4*(x-1)^4+1/5*(x1)^5 taylor(sin(x),pi/2,6) returns 1-1/2*(x-1/2*pi)^2+1/24*(x-1/2*pi)^4 syms('x','t'); taylor(x^t,3,t) returns
符号表达式的操作
符号表达式的书写有多种形式: 多项式表达形式; 因式形式表达形式
嵌套形式表达形式
符号运算中有许多操作指令,如collect(合并
同类项)、expand(对指定项展开)、
factor(进行因式或因子分解)、horner (转换成嵌套形式)、numden(提取公因 式)、simplify(恒等式简化)、pretty(习 惯方式显示),simple等。
f = 'cos(x)+2*sin(x)'; ezplot(f)
The statement, ezplot('sin(x)',[0 2*pi]) creates the plot:
>> ezplot('sin(t)','cos(t)')
3MATLAB数值计算
第三节MATLAB数值计算数学计算分为数值计算和符号计算。
这两种计算的区别是:数值计算的表达式、变量中不得包含未定义的自由变量,而符号计算中则允许。
本节主要介绍MATLAB的数值计算。
一、多项式1.多项式的表达与创建MATLAB用行矢量表示多项式系数,其中各元素按降幂顺序排列,如果多项式表示为:p(x)=a0x n+ a1x n-1+…+ a n-1x+a n则系数矢量为:p=[a0 a1 …a n-1 a n] 。
例如:p(x)= x3-2x-5,其系数矢量为:p=[1 0 -2 -5]。
如果把根矢量表示为:ar=[ar1ar2…ar n],则根矢量与系数矢量之间满足下面的关系式:(x- ar1)(x- ar2) …(x- ar n)= a0x n+ a1x n-1+…+ a n-1x+a n多项式系数矢量通过调用函数p = poly(ar)产生。
例1将多项式(x-8)(x-3)(x-6)表示为系数形式(即求出系数矢量)。
a=[8 3 6];%写成根矢量pa=poly(a)%求出系数矢量ppa=poly2sym(pa) % 表示成符号形式ezplot(ppa,[-40,40]) % 绘图输出结果为:pa =1 -17 90 -144ppa =x^3-17*x^2+90*x-144图1说明:(1) n个元素的根矢量求出的多项式系数矢量的元素一定是n+1个。
(2) 函数poly2sym把多项式系数矢量表达成符号形式的多项式,缺省情况下自变量符号为x,可以指定其他自变量,如poly2sym(pa,’t’),则表达为t的多项式。
(3) 使用简单绘图函数ezplot可以直接绘制符号形式多项式的曲线,其中第二个输入参数是由方括号内的两个数值组成的,给定了绘图范围。
若省略该参数,系统将自动按缺省范围绘图。
例2求3阶方阵A的特征多项式。
A=[6 3 8;7 5 6;1 3 5];pa=poly(A)ppa=poly2sym(pa)输出结果为:pa =1.0000 -16.0000 38.0000 -83.0000ppa =x^3-16*x^2+38*x-83说明:n阶方阵的特征多项式系数矢量一定是n+1阶。
matlab实验3:多项式运算
代数多项式求值
y = polyval(p,x)
计算多项式 p 在 x 点的值
注:若 x 是向量或矩阵,则采用数组运算 (点运算)! 例:已知 p(x)=2x3-x2+3,分别取 x=2 和一个 22 矩阵,
求 p(x) 在 x 处的每个分量上的值
>> p=[2,-1,0,3]; >> x=2; y = polyval(p,x) >> x=[-1,2;-2,1]; y = polyval(p,x)
例:解方程组
x
2yz xz3
2
x 3y 8
>> A=[1 2 -1; 1 0 1; 1 3 0]; >> b=[2;3;8]; >> x=linsolve(A,b)
b是列向量!
非线性方程的根
Matlab 非线性方程的数值求解
fzero(f,x0):求方程 f=0 在 x0 附近的根。
符号求解
solve 也可以用来解方程组 solve( f1 , f2 , ... , fN , v , ... , fN 确定的方程组关于 v1 , v2 , ... , vN 的解
例:解方程组
x 2 y z 27
x
z
3
x2 3 y2 28
例:2x3-x2+3 <-> [2,-1,0,3]
特别注意:系数中的零是不能省的!
多项式的符号形式:poly2sym 如,>> poly2sym([2,-1,0,3])
运行结果:ans = 2*x^3-x^2+3
多项式四则运算
多项式加减运算
多项式的加减运算就是其所对应的系数向量的加减运算
MATLAB第二讲__数值计算和符号计算
(4)数值运算中必须先对变量赋值;符号运算无须事先对变 量赋值,但必须先定义,运算结果以标准的符号表达 式形式给出。
Matlab基础应用 21
2.2.2 符号运算中的运算符
(1)基本运算符 符号矩阵:‚+”,‚-”,‚*‛,‚\”, ‚/”, ‚^”, ‚ ’ ” 符号数组:‚.*”,‚./”,‚.\‛,‚.^”, ‚.’ ” (2)关系运算符 运算符只有‚==”,‚~=”。
Matlab基础应用 7
1.3.4 多项式乘除运算(续)
例4: a(x)=x2+2x+3; b(x)=4x2+5x;求c=a(x)*b(x)。 解: >>a=[1 2 3];b=[4 5 0]; >>c=conv(a,b) c= 4 13 22 15 0 >>[d,r]=deconv(c,a) d= 4 5 0 r= 0 0 0 0 0
注意: 方法一只创建了符号表达式,没有创建符号变量; 而方法二既创建了符号表达式,又创建符号变量.
Matlab基础应用 19
2.1.3 创建符号矩阵
使用sym和syms命令创建
例4: A=sym(‘[a,b;c,d]’) A= [ a, b] [ c, d] syms f g h k B=[f,g;h,k] B=
%方法二
Name Size Bytes Class a 1x1 126 sym object b 1x1 126 sym object c 1x1 126 sym object f2 1x1 146 sym object x 1x1 126 sym object Grand total is 20 elements using 650 bytes
Matlab实验报告87025
Matlab实验报告87025实验⼀:Matlab操作环境熟悉⼀、实验⽬的1.初步了解Matlab操作环境。
2.学习使⽤图形函数计算器命令funtool及其环境。
⼆、实验内容熟悉Matlab操作环境,认识命令窗⼝、内存⼯作区窗⼝、历史命令窗⼝;学会使⽤format命令调整命令窗⼝的数据显⽰格式;学会使⽤变量和矩阵的输⼊,并进⾏简单的计算;学会使⽤who和whos命令查看内存变量信息;学会使⽤图形函数计算器funtool,并进⾏下列计算:1.单函数运算操作。
求下列函数的符号导数(1)y=sin(x); (2) y=(1+x)^3*(2-x);求下列函数的符号积分(1)y=cos(x);(2)y=1/(1+x^2);(3)y=1/sqrt(1-x^2);(4)y=(x1)/(x+1)/(x+2)求反函数(1)y=(x-1)/(2*x+3); (2) y=exp(x); (3) y=log(x+sqrt(1+x^2));代数式的化简(1)(x+1)*(x-1)*(x-2)/(x-3)/(x-4);(2)sin(x)^2+cos(x)^2;(3)x+sin(x)+2*x-3*cos(x)+4*x*sin(x);2.函数与参数的运算操作。
从y=x^2通过参数的选择去观察下列函数的图形变化(1)y1=(x+1)^2(2) y2=(x+2)^2 (3) y3=2*x^2 (4) y4=x^2+2 (5) y5=x^4 (6) y6=x^2/23.两个函数之间的操作求和(1)sin(x)+cos(x) (2) 1+x+x^2+x^3+x^4+x^5乘积(1)exp(-x)*sin(x) (2) sin(x)*x商(1)sin(x)/cos(x); (2) x/(1+x^2); (3) 1/(x-1)/(x-2);求复合函数(1)y=exp(u) u=sin(x) (2) y=sqrt(u) u=1+exp(x^2)(3) y=sin(u) u=asin(x) (4) y=sinh(u) u=-x实验⼆:MATLAB基本操作与⽤法⼀、实验⽬的1.掌握⽤MATLAB命令窗⼝进⾏简单数学运算。
Matlab实验指导书(印刷)
(1) y=sin(x); (2) y=(1+x)^3*(2-x); ¾ 求下列函数的符号积分 (1) y=cos(x); (2) y=1/(1+x^2); (3) y=1/sqrt(1-x^2); (4) y=(x-1)/(x+1)/(x+2); ¾ 求反函数 (1) y=(x-1)/(2*x+3); (2) y=exp(x); (3) y=log(x+sqrt(1+x^2)); ¾ 代数式的化简 (1) (x+1)*(x-1)*(x-2)/(x-3)/(x-4); (2) sin(x)^2+cos(x)^2; (3) x+sin(x)+2*x-3*cos(x)+4*x*sin(x); 2.函数与参数的运算操作。 ¾ 从 y=x^2 通过参数的选择去观察下列函数的图形变化 (1) y1=(x+1)^2 (2) y2=(x+2)^2 (3) y3=2*x^2 (4) y4=x^2+2 (5) y5=x^4 (6) y6=x^2/2 3.两个函数之间的操作 ¾ 求和 (1) sin(x)+cos(x) (2) 1+x+x^2+x^3+x^4+x^5 ¾ 乘积 (1) exp(-x)*sin(x)
二、实验内容
熟悉 Matlab 操作环境,认识命令窗口、内存工作区窗口、历史命令窗口;学会使 用 format 命令调整命令窗口的数据显示格式;学会使用变量和矩阵的输入,并进行简 单的计算;学会使用 who 和 whos 命令查看内存变量信息;学会使用图形函数计算器 funtool,并进行下列计算:
-1-
matlab符号运算 多项式
matlab符号运算多项式(实用版)目录1.MATLAB 中的多项式运算2.MATLAB 中的符号运算3.字符数组和 ASCII 码4.创建二维字符数组5.单元数组和字符串6.判断字符串是否相等正文在 MATLAB 中,多项式运算是一个非常常用的功能。
多项式运算的函数通常以向量来表示,这与符号表达式有所不同。
在 MATLAB 中,你可以使用符号运算来处理代数表达式,这种运算允许运算对象包含非数值的符号变量。
在 MATLAB 中,字符串可以用字符数组来表示,而字符数组则与ASCII 码相对应。
每个字符都有两个字节来构成。
你可以使用 whos 函数来查看字符数组。
如果想要将字符串转换为它的 ASCII 码,可以使用double 函数;如果想将 SACII 码转换为原来的字符,可以使用 char 函数。
当你需要创建二维的字符数组时,需要先确定数组的每一行字符的个数都必须相等。
例如,你可以使用 name 函数创建一个二维字符数组,如"Thomas R.Lee";"Sr.Developer"。
在 MATLAB 中,你可以通过利用单元数组来保存字符串的数据,这比字符串数组更加方便。
你可以使用 cellstr 函数将字符数组转换为单元数组。
当需要判断两个字符串是否相等时,MATLAB 提供了两个函数:strcmp 和 strncmp。
strcmp 函数用于比较两个输入字符串是否相等,而 strncmp 函数用于比较两个输入字符串的前几个字符是否相等。
总的来说,MATLAB 提供了强大的多项式运算和符号运算功能,同时它也提供了方便的字符数组和 ASCII 码转换功能,以及字符串的创建和比较功能。
第三讲MATLAB的符号运算
④计算所需的时间较长。
• Symbolic Math Toolbox——符号运算工具包通过调用
Maple软件实现符号计算的。
• Maple软件——主要功能是符号运算,它占据符号软件
的主导地位。
2. 字符串与符号变量、符号常量
字符串对象 f = 'sin(x)+5x'
由符号变量构成的符号函数和 符号方程
• 符号表达式是由符号常量、符号变量、符号函
数运算符以及专用函数连接起来的符号对象。
• 包括:符号函数和符号方程。判断看带不带等
号。 例:syms x y z; f1=x*y/z;
f2=x^2+y^2+z^2; f3=f1/f2;
e1=sym('a*x^2+b*x+c')
factor(x^3-y^3)
• simplify( ) 该函数是一个强有力的具有
普遍意义的工具,它利用Maple化简规则 对表达式进行简化。
例:S=sym('[(x^2+5*x+6)/(x+2);sqrt(16)]')
simplify(S)
• simple( ) 用几种不同的算术简化规则对
符号表达式进行简化,使其用最少的字 符来表示。
行是自变量 x 的取值范围和常数 a 的值。
• 第四行只对 f 起作用,如求导、积分、简
化、提取分子和分母、倒数、反函数。
• 第五行是处理 f 和 a 的加减乘除等运算。
• 第六行前四个进行 f 和 g 之间的运算,后
三个分别是:求复合函数;把 f 传递给 ; swap是实现 f 和 g 功能的交换。
matlab2022实验2参考答案
matlab2022实验2参考答案报告名称:MATLAB试验二符号计算姓名:学号:专业:班级:MATLAB实验二MATLAB符号计算试验报告说明:1做试验前请先预习,并独立完成试验和试验报告。
2报告解答方式:将MATLAB执行命令和最后运行结果从命令窗口拷贝到每题的题目下面,请将报告解答部分的底纹设置为灰色,以便于批阅。
3在页眉上写清报告名称,学生姓名,学号,专业以及班级。
3报告以Word文档书写。
一目的和要求1熟练掌握MATLAB符号表达式的创建2熟练掌握符号表达式的代数运算3掌握符号表达式的化简和替换4熟练掌握符号微积分5熟练掌握符号方程的求解二试验内容1多项式运算(必做)1.1解方程:f(某)=某^4-10某某^3+34某某^2-50某某+25=0%采用数值方法:>>f=[1-1034-5025];>>root(f)%采用符号计算方法:f1=ym('某^4-10某某^3+34某某^2-50某某+25')olve(f1)1.2求有理分式R=(3某^3+某)(某^3+2)/((某^2+2某-2)(5某^3+2某^2+1))的商多项式和余多项式.a1=[3010];a2=[1002];a=conv(a1,a2);b1=[12-2];b2=[5201];b=conv(b1,b2);[p,r]=deconv(a,b);%注意:ab秩序不可颠倒。
%reidue用于实现多项式的部分分式展开,此处用deconv函数报告名称:MATLAB试验二符号计算姓名:学号:专业:班级:%%此题,有同学程序如下:某1=[3010],某2=[1002],某3=[12-2],某4=[5201]某5=conv(某1,某2)[y6,r]=deconv(某5,某3)R=deconv(y6,某4)%%这种方法较第一种解法缺点:在除法运算中,会产生误差,故此题应先将分母的多项式相乘后,再与分子部分的多项式进行运算。
matlab多项式写法
matlab多项式写法在MATLAB中,多项式可以使用多种方式进行表示和操作。
下面我将从多个角度介绍MATLAB中的多项式写法。
1. 一维数组表示:最简单的方式是使用一维数组来表示多项式的系数。
数组的索引表示多项式的次数,对应的元素值表示该次数的系数。
例如,多项式 2x^3 3x + 1 可以表示为一个数组 [2, 0, -3, 1],其中索引 1 对应的元素值为 2,表示 x^3 的系数为 2。
2. polyval 函数:MATLAB提供了 polyval 函数,可以根据给定的多项式系数和自变量的值计算多项式的值。
例如,使用上述的多项式系数数组[2, 0, -3, 1],可以通过 polyval([2, 0, -3, 1], x) 来计算多项式在自变量 x 处的值。
3. poly2sym 函数:除了使用数组表示多项式外,MATLAB还提供了 poly2sym函数,可以将多项式转换为符号表达式。
例如,使用 poly2sym([2, 0, -3, 1], 'x') 将得到符号表达式 2x^3 3x + 1。
4. sym 函数:MATLAB中的符号计算工具箱提供了 sym 函数,可以直接创建符号变量和符号表达式。
例如,使用 sym('x') 创建一个符号变量 x,然后可以使用这个符号变量进行多项式的运算和表示。
5. roots 函数:MATLAB中的 roots 函数可以用于求解多项式的根。
给定多项式的系数,roots 函数将返回一个列向量,其中包含多项式的所有根。
6. polyfit 函数:MATLAB中的 polyfit 函数可以用于拟合数据点的多项式。
给定一组数据点的 x 坐标和 y 坐标,polyfit 函数可以拟合出一个多项式,返回多项式的系数。
综上所述,以上是MATLAB中多项式的一些常见表示和操作方法。
通过使用数组、符号表达式、符号变量以及相关的函数,可以在MATLAB中灵活地处理和计算多项式。
matlab中多项式中符号运算
matlab中多项式中符号运算
在Matlab中,可以使用符号工具箱进行多项式的符号运算。
以下是一些常见的多项式符号运算的示例:
1. 定义一个多项式:
```matlab
syms x;
p = x^2 + 2*x + 1;
```
2. 多项式求导:
```matlab
dp = diff(p, x);
```
3. 多项式积分:
```matlab
intp = int(p, x);
```
4. 多项式展开:
```matlab
expanded = expand(p);
```
5. 多项式因式分解:
```matlab
factored = factor(p);
```
6. 多项式代入:
```matlab
p2 = subs(p, x, 2);
```
7. 多项式求解:
```matlab
sol = solve(p, x);
```
这只是一些常见的多项式符号运算示例,还有更多的符号运算可以在Matlab中进行。
需要注意的是,符号工具箱在处理大
型多项式或高阶多项式时可能会变得缓慢或无法计算。
如果需要进行更复杂的符号运算,可以考虑使用专门的符号计算软件,如Mathematica或Maple。
matlab的符号计算
matlab的符号计算符号数学工具箱是操作和解决符号表达式的符号数学工具箱(函数)集合,有复合、简化、微分、积分以及求解代数方程和微分方程的工具。
另外还有一些用于线性代数的工具,求解逆、行列式、正则型式的精确结果,找出符号矩阵的特征值而无由数值计算引入的误差。
工具箱还支持可变精度运算,即支持符号计算并能以指定的精度返回结果。
符号数学工具箱中的工具是建立在功能强大的称作Maple软件的基础上。
它最初是由加拿大的滑铁卢(Waterloo)大学开发的。
当要求MATLAB进行符号运算时,它就请求Maple去计算并将结果返回到MATLAB命令窗口。
因此,在MATLAB中的符号运算是MATLAB处理数字的自然扩展。
8.1 符号表达式符号表达式是代表数字、函数、算子和变量的MATLAB字符串,或字符串数组。
不要求变量有预先确定的值,符号方程式是含有等号的符号表达式。
符号算术是使用已知的规则和给定符号恒等式求解这些符号方程的实践,它与代数和微积分所学到的求解方法完全一样。
符号矩阵是数组,其元素是符号表达式。
MATLAB在内部把符号表达式表示成字符串,以与数字变量或运算相区别;否则,这些符号表达式几乎完全象基本的MATLAB命令。
下表列有几则符号表达式例子以及MATLAB等效表达式。
符号表达式 MATLAB表达式'1/(2*x^n)'y='1/sqrt(2*x)''cos(x^2)-sin(2*x)'M=sym('[a,b;c,d]')f=int('x^3/sqrt(1-x)','a','b')MATLAB符号函数使我们能用多种方法来操作符号表达式,比如,>>diff('cos(x)') %differentiate cos(x) with respect to xans=-sin(x)>>M=sym('[a,b;c,d]') %create a symbolic matrix MM=[a,b][c,d]>>determ(M) %find the determinant of the symbolic matrix Mans=a*d-b*c要注意的是,以上第一例的符号表达式是用单引号以隐含方式定义的。
matlab多项式
matlab多项式10.1 根找出多项式的根,即多项式为零的值,可能是许多学科共同的问题,。
MA TLAB求解这个问题,并提供其它的多项式操作工具。
在MA TLAB里,多项式由一个行向量表示,它的系数是按降序排列。
例如,输入多项式x4-12x3+0x2+25x+116» p=[1-12025116]p =1-12025116注意,必须包括具有零系数的项。
除非特别地辨认,MA TLAB无法知道哪一项为零。
给出这种形式,用函数roots找出一个多项式的根。
» r=roots(p)r =11.74732.7028-1.2251 + 1.4672i-1.2251 - 1.4672i因为在MA TLAB中,无论是一个多项式,还是它的根,都是向量,MA TLAB按惯例规定,多项式是行向量,根是列向量。
给出一» pp=poly(r)pp =1.0e+002 *Columns 1 through 40.0100-0.12000.00000.2500Column 51.1600 + 0.0000i» pp=real(pp) %throw away spurious imaginary partpp =1.0000-12.00000.000025.0000116.0000因为MA TLAB无隙地处理复数,当用根重组多项式时,如果一些根有虚部,由于截断误差,则poly的结果有一些小的虚部,这是很普通的。
消除虚假的虚部,如上所示,只要使用函数real抽取实部。
10.2 乘法函数conv支持多项式乘法(执行两个数组的卷积)。
考虑两个多项式a(x)=x3+2x2+3x+4和b(x)= x3+4x2+9x+16的乘积:» a=[1234] ;b=[14916];» c=conv(a , b)c =162050758464结果是c(x)=x6+6x5+20x4+50x3+75x2+84x+64。
Matlab教学第四章MATLAB符号运算(Symbolic)
符号计算可以给出完全正确的封闭解,或任意精度的数
值解(封闭解不存在时)。
符号计算指令的调用比较简单,与数学教科书上的公式相近。
符号计算所需的运行时间相对较长。
Matlab 符号运算举例
求一元二次方程 ax2 + bx + c = 0 的根 >> solve('a*x^2+b*x+c=0') 求的根 f (x) = (cos x)2 的一次导数 >> x=sym('x'); >> diff(cos(x)^2) 计算 f (x) = x2 在区间 [a, b] 上的定积分
>> syms a b x; >> int(x^2,a,b)
符号对象与符号表达式
在进行符号运算时,必须先定义基本的符号对象,可以是符号常量、符号变 量、符号表达式等。符号对象是一种数据结构。
含有符号对象的表达式称为符号表达式,Matlab 在内部把符号表达式表示 成字符串,以与数字变量或运算相区别。
syms a b c
符号表达式的建立
符号表达式的建立:
建立符号表达式通常有以下2种方法: (1) 用 sym 函数直接建立符号表达式。 (2) 使用已经定义的符号变量组成符号表达式。
例: >>
y=sym('sin(x)+cos(x)')
>> x=sym('x'); >> y=sin(x)+cos(x) >> syms x; >> y=sin(x)+cos(x)
六类常见符号运算
因式分解、展开、合并、简化及通分等 计算极限 计算导数 计算积分 符号求和 代数方程和微分方程求解
matlab符号运算 多项式
matlab符号运算多项式摘要:1.引言2.Matlab 符号运算介绍3.多项式在Matlab 中的表示与运算4.多项式求解与优化5.总结正文:Matlab 是一个广泛应用于科学计算和工程设计的软件,其中符号运算功能强大,可以方便地进行各种数学计算。
在本文中,我们将重点介绍Matlab 中多项式的表示、运算及求解方法。
首先,我们需要了解Matlab 符号运算的基本概念。
在Matlab 中,符号运算可以处理任意精度的数值和符号表达式,支持常见的数学运算、函数计算以及逻辑表达式处理等。
接下来,我们将重点关注多项式在Matlab 中的表示与运算。
多项式是数学中一种重要的表达形式,可以用于描述许多实际问题。
在Matlab 中,多项式可以表示为符号表达式或者数值表达式。
例如,可以使用poly 函数创建一个多项式,如:```matlabp = poly(x, 3); % 创建一个关于x 的三次多项式```在Matlab 中,我们可以使用符号运算对多项式进行加、减、乘、除等基本运算。
例如:```matlabq = poly(x, 2); % 创建一个关于x 的二次多项式r = p + q; % 多项式加法s = p * q; % 多项式乘法t = p / q; % 多项式除法```此外,Matlab 还提供了许多内置函数,可以方便地对多项式进行求解和优化。
例如,我们可以使用roots 函数求解多项式的根:```matlabroots(p) % 求解多项式p 的根```我们还可以使用polyfit 函数对数据进行拟合,得到一个多项式表达式:```matlabx = [1, 2, 3, 4, 5]; % 数据点y = [2, 4, 6, 8, 10]; % 对应的y 值p = polyfit(x, y, 2); % 使用二次多项式拟合数据```通过上述方法,我们可以利用Matlab 符号运算功能,方便地处理多项式问题。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
多项式除运算deconv()
a=[1,2,3];
% x2+2x+3
c = [4,13,28,27,18]; % 4x4+13x3+28x2+27x+18
(1) d=deconv(c,a)
d =4 5 6 →4x2+5x+6 (2) [d,r]=deconv(c,a)
余数
c除a后的整数
多项式求导
matlab提供了polyder()进行多项式的微分。 命令格式: polyder(p): 求p的微分 polyder(a,b): 求多项式a,b乘积的微分
多项式乘运算conv()
例:a(x)=x2+2x+3; b(x)=4x2+5x+6; c = (x2+2x+3)(4x2+5x+6) a=[1 2 3];b=[4 5 6]; c=conv(a,b)=conv([1 2 3],[4 5 6]) c = 4.00 13.00 28.00 27.00 18.00 p=poly2str(c,'x') p = 4 x^4 + 13 x^3 + 28 x^2 + 27 x + 18 注:多项式乘运算不涉及补零的问题
例:syms x; a=int(cos(x),0,pi/6)
例:syms x y; b=int(x^y,y,0,pi/6) pretty(b)
注:pretty()可以使结果更加整齐
(3)用符号变量求广义积分
当积分限某一具体数值变为正负无穷时定积分转变为广 义积分,在MATLAB中也只需将积分限变为inf或-inf即可。
插值函数:interp1 调用格式:interp1(x,y,xi,’method’) 其中: (1)x、y为离散数据的坐标向量,要求长度
必须相同 (2)xi为插入点的数据向量 (3)Method为插值方法,为字符串变量 有三种方法供选择: ’linear’、’cubic’、’spline’
分别表示线性插值、三次插值和三次样条插值
法找一个准确地基本解。
例: x1+2x2=1 2x1+3x2=2 3x1+4x2=3
12
1
2 3 x1 = 2
3 4 x2 3
a x=b
a=[1 2;2 3;3 4];b=[1;2;3];
解1 x=a\b 解2 x=inv(a'a) a' b
x=
x=
1.00
1.00
0
0.00
3.欠定方程组的解
方程ax=b(a为非奇异) x=a-1 b 矩阵逆
两种解: x=inv(a)b — 采用求逆运算解方程 x=a\b — 采用左除运算解方程
例: x1+2x2=8 2x1+3x2=13
方程ax=b
1 2
2 3
x1 = 8
x2 13
a x=b
a=[1 2;2 3];b=[8;13]; x=inv(a)*b
MATLAB在积分求导运算中的应用
(1)求单重积分 调用格式:
q1=quad(‘被积函数表达式’,’积分下限’,’积分上限’)
. 注意:函数表达式中运算符前面加“ ” 例:求积分 3 4 cos2 (2t) sin2 (t)dt
0
q1=quad('4*cos(2*t).^2+sin(t).^2',0,3*pi);
n1=length(x1); n2=length(x2); if n1>n2
x2=[zeros(1,n1-n2),x2]; elseif n1<n2
x1=[zeros(1,n2-n1),x1]; end; y=x1+x2
主程序: a=[2,4,6,8]; b=[3,6,9]; C=polyadd(a,b)
并赋给yi plot(x,y, 'o',xi,yi,'b'); 注意:当拟合次数过高时,会造成曲线的振荡
拟合的次数不允许超过点数,即此例中n<=5
插值拟合
(1)插值的定义——是在给定的原始数据点之间用某些 特定的数学算法插入一些数据点,当原始数据点和插入数 据点连线后得到穿过原始数据点的光滑曲线。 (2)当不能很快地求出所需中间点的函数时,插值是一 个非常有价值的工具。 (3)Matlab提供了线性插值、三次插值和三次样条插值3 种选择。
代数方程组求解
matlab中有两种除运算左除和右除。 对于方程ax=b,a 为am×n矩阵,有三种情 况: 当m=n时,此方程成为“恰定”方程 当m>n时,此方程成为“超定”方程 当m<n时,此方程成为“欠定”方程
matlab定义的除运算可以很方便地解上 述三种方程
1.恰定方程组的解
a=[1 2 3;2 3 4];b=[1;2];
a x =b
x=a\b
x=pinv(a)b
x=
x=
1.00
0.83
0
0.33
0
-0.17
多项式拟合
原理:MATLAB通过给定的离散点,找一 个n次多项式,使所有离散点到多项式 曲线的距离的平方和最小。
准则:最小二乘法 拟合函数:p=polyfit(x,y,n) 其中x、y为离散数据点的坐标向量,n为拟
一组根用列向量表示。
多项式加减运算
计算a(x)+b(x)
如:2x3+4x2+6x+8
3x2+6x+9
则:a=[2,4,6,8];
b=[3,6,9]
→b=[0,3,6,9]
c=a+b =[2,7,12,17]
→ 2x3+7x2+612x+17
编写子程序文件自动完成两多项式加减运算
函数文件: function y=polyadd(x1,x2)
合次数,即用n次多项式拟合,p为n次 多项式的系数
拟合程序例1:
将下列离散点用直线拟合,并绘制:
(0,11.2)、(0.2,16.5)、(0.4,20.4)、(0.6,26.3)、(0.8,30.5)、(1,28.7)
编程:
x=0:0.2:1; y=[11.2,16.5,20.4,26.3,30.5,28.7]; a=polyfit(x,y,1); %即用a1x+a2的直线表达式拟合 %下面开始绘制已经求出的直线a1x+a2 xi=linspace(0,1,50); yi=polyval(a,xi); %将xi的每一个元素作为横坐标带入 a1x+a2的表达式中,得出xi对应的纵坐标
当方程数少于未知量个数时,即不定 情况,有无穷多个解存在。 matlab可用两种方法求解: 方法1:用除法求的解x是具有最多零元素
的解 x=a\b 方法2:是具有最小长度或范数的解,这个
解是基于伪逆pinv求得的。
x=pinv(a)b
x1+2x2+3x3=1 2x1+3x2+4x3=2
x1 1 2 3 x2 = 1 2 3 4 x3 2
(2)双重积分 调用格式:
q2=dblquad(‘被积函数表达式’,xmin,xmax,ymin,ymax);
. 注意:函数表达式中运算符前面加“ ”
例:求
2 4
( y sin x x sin y)dxdy
3
q2=dblquad('y.*sin(x)+x.*cos(y)',3*pi,4*pi,pi,2*pi)
多项式求导与符号运算求导的区别
(1)多项式求导例子 a=[1,2,3]; % x2+2x+3 polyder(a) 结果:ans = 2 2 %代表2x+2 (2) syms x;
f=x^2+2*x+3; diff(f) 结果:ans=2*x+2
例:求f(x)=(x+exsinx)1/2的导数 程序 syms x; f=(x+exp(x)*sin(x) )^(1/2) diff(f) pretty(ans)
用符号变量运算求积分
(1)用符号变量求不定积分 调用格式:int(被积函数表达式,被积变量) 例: syms x y z; %表示声明3个符号变量x、y、z
%注意:变量用空格隔开 int(sin(x*y+z),x)
因为是符号变量运算,所以运算符前不用加“.”
(2)用符号变量求定积分
调用格式:int(被积函数表达式,被积变量,积分下限,积分上限)
例:求函数g(x)=1/(1+x2)在1到正无穷的广义积分 程序:syms x;
g=1/(1+x^2); int(g,1,inf) 例:求函数f(x)=1/(x2+2x+3)在负无穷到正无穷的广义积分 程序:syms x; f=1/(x^2+2*x+3); int(f,-inf,inf)
函数的求导
2、求高阶导数
格式:diff(f,n) 其中n为求导的阶数 例:求y=e-2xcos(3x1/2)的4阶导数 程序:
syms x; y=exp(-2*x)*cos(3*(x)^(1/2)) diff(y,4) pretty(ans)
3、多元函数求导
调用格式: diff(函数表达式,被求导变量,n)
a=x^3 - 6 x^2 - 72 x – 27
并将表达式的结果以字符串的形式赋值给变量a
函数2:roots()
作用: 求多项式的根
a=[1,-3,2]; %对应多项式x2-3x+2 %若求 方程x2-3x+2=0的根 x=roots(a) 则x =