Matlab多项式运算

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

linsolve(A,b):解线性方程组。 解线性方程组。
例:
>>fzero(‘sin(x)’,10) >>fzero(@sin,10) >>fzero(‘x^3-3*x+1’,1) >>fzero(‘x^3-3*x+1’,[1,2]) >>fzero(‘x^3-3*x+1’,[-2,0])
Matlab符号方程求解 符号方程求解
s=solve(f,v):求方程关于指定自变量的解; :求方程关于指定自变量的解; s=solve(f):求方程关于默认自变量的解。 :求方程关于默认自变量的解。
以由字符串给出或使用 ,但不能是符号表达式! 以由字符串给出或使用@, 不能是符号表达式! 字符串给出或使用
solve(f,v):求方程关于指定自变量的解,f可以是用 求方程关于指定自变量的解, 字符串表示的方程 表示的方程, 符号表达式, 字符串表示的方程,或符号表达式,若不含等号表示f=0;
也可解方程组(包含非线性 ;得不到解析解时,给出数值解。 也可解方程组 包含非线性);得不到解析解时,给出数值解。 包含非线性
其中 f可以是用字符串表示的方程,或符号表达式;若 可以是用字符串表示的方程, 符号表达式; 字符串表示的方程 f 中不含等号,则表示解方程 f=0。 中不含等号, 。 例:解方程 x^3-3*x+1=0 >>syms x; f=x^3-3*x+1; >>s=solve(f,x) >>s=solve(‘x^3-3*x+1’,‘x’) >>s=solve(‘x^3-3*x+1=0’,‘x’)
>> k1=polyder([2,-1,0,3]); >> k2=polyder([2,-1,0,3],[2,1]); >> [k2,d]=polyder([2,-1,0,3],[2,1]);
多项式求值
代数多项式求值: 代数多项式求值: 求值
y=polyval(p,x):计算多项式 在x点的值 计算多项式p在 点的值 计算多项式
例:解方程组 x + 2 y − z = 2 x+z =3 x + 3y = 8 >> A=[1 2 –1; 1 0 1; 1 3 0]; >> b=[2;3;8]; >> X=linsolve(A,b) b是列向量! 是列向量! 是列向量
求解方程函数小结
roots(p):多项式的所有零点,p是多项式系数向量。 多项式的所有零点, 是多项式系数向量 是多项式系数向量。 fzero(f,x0):求f=0在x0附近的根,f是函数句柄,可 附近的根, 是函数句柄 是函数句柄, 在 附近的根
[2, − 1, 0, 3] [ 0, 0, 2, 1] [ [2, − 1, 2, 4]
多项式四则运算( 多项式四则运算(续) 多项式乘法运算: 多项式乘法运算: k=conv(p,q)
例:计算多项式 2 x 3 − x 2 + 3 和 2 x + 1 的乘积 >> p=[2,-1,0,3]; >> q=[2,1]; >> k=conv(p,q); 多项式除法运算: 多项式除法运算:[k,r]=deconv(p,q) 的商, 是余式。 其中k返回的是多项式p除以 q的商,r是余式。 [k,r]=deconv(p,q) <==> p=conv(q,k)+r
多项式的导数:polyder 多项式的导数:
k=polyder(p):多项式p的导数; 多项式 的导数; k=polyder(p,q): p*q 的导数; 的导数; [k,d]=polyder(p,q):p/q 的导数,k是分子,d是分母。 的导数,k是分子 d是分母 是分子, 是分母。
p( x ) = 2 x 3 − x 2 + 3, q( x ) = 2 x + 1 , 例:已知 求 p' , ( p ⋅ q)' , ( p / q)'
>>[x,y,z]=solve(‘x+2*y-z=27’,‘x+z=3’, ... ‘x^2+3*y^2=28’,‘x’,‘y’,‘z’) 输出变量的顺序要书写正确! 输出变量的顺序要书写正确!
solve在得不到解析解时,会给出数值解。 在得不Fra Baidu bibliotek解析解时,会给出数值解。 在得不到解析解时
线性方程组求解 linsolve(A,b):解线性方程组 Ax = b :
Matlab多项式运算与方程求根 多项式运算与方程求根
Matlab多项式运算 多项式运算
在 Matlab 中,n 次多项式是用一个长度为 n+1 的向量来表示, 的向量来表示,缺少的幂次项系数为 0。例如: 。例如:
p( x ) = an x n + an−1 x n−1 + ⋯ + a1 x + a0
注:若 x 是向量或矩阵,则采用数组运算(点运算)! 是向量或矩阵,则采用数组运算 点运算)! 数组运算( 和一个2x2矩阵, 矩阵, 例:已知 p( x ) = 2 x 3 − x 2 + 3,分别取 x=2和一个 和一个 矩阵 求 p(x)在 x处的值 在 >> p=[2,-1,0,3]; >> x=2;polyval(p,x) >> x=[-1, 2;-2,1];polyval(p,x)
多项式求值(续) 多项式求值(
矩阵多项式求值: 矩阵多项式求值: 求值
Y=polyvalm(p,X):以方阵X为自变量, : 为自变量, 计算多项式的值,采用矩阵运算 矩阵运算。 计算多项式的值,采用矩阵运算。
3 2 例:已知 p( x ) = 2 x − x + 3,则
polyvalm(p,A)=2*A*A*A - A*A + 3*eye(size(A)); polyval(P,A)=2*A.*A.*A - A.*A + 3*ones(size(A)) >> p=[2,-1,0,3]; >> x=[-1, 2;-2,1];polyval(p,x) >> polyvalm(p,x)
多项式求根 x=roots(p):若p是n次多项式,则输出 为包 : 次多项式, 是 次多项式 则输出x为包 个根的n维向量 含p=0的n个根的 维向量。 的 个根的 维向量。
3 2 的零点。 例:已知 p( x ) = 2 x − x + 3 ,求p(x)的零点。 的零点
>> p=[2,-1,0,3]; >> x=roots(p) 若已知多项式的全部零点,则可用 函数给出该多项式。 若已知多项式的全部零点,则可用poly函数给出该多项式。 函数给出该多项式 p=ploy(x)
(3)若x0是一个 维向量,则表示在 若 是一个 维向量,则表示在[x0(1),x0(2)] 是一个2维向量 区间内求方程的根,此时必须满足f在这两个端点上 区间内求方程的根,此时必须满足 在这两个端点上 的值异号。 的值异号。 (4)由于fzero是根据函数是否穿越横轴来决定零点 (4)由于fzero是根据函数是否穿越横轴来决定零点, 是根据函数是否穿越横轴来决定零点, 由于 因此它无法确定函数曲线仅触及横轴但不穿越的零点, 因此它无法确定函数曲线仅触及横轴但不穿越的零点, 的所有零点。 如|sin(x)|的所有零点。 的所有零点 (5)函数中的 是一个函数句柄,可通过一下方式给出: 函数中的f是一个函数句柄 可通过一下方式给出: 函数中的 是一个函数句柄, 字符串形式: 字符串形式:fzero(‘x^3-3*x+1’,2); 通过@调用的函数句柄 调用的函数句柄: 通过 调用的函数句柄:fzero(@sin,4); (6) f不能用符号表达式! 不能用符号表达式!
p( x ) = ( x − x1 )( x − x2 )⋯( x − xn )
注:以上多项式运算中,使用的都是多项式 以上多项式运算中, 不涉及符号计算! 的 系数向量,不涉及符号计算!
Matlab非线性方程的数值求解 非线性方程的数值求解
fzero(f,x0):求方程f=0在x0附近的根。 : 附近的根。 几点说明: 几点说明:
(1)方程可能有多个根,但fzero之给出离 最近的 方程可能有多个根, 之给出离x0最近的 方程可能有多个根 之给出离 一个根; 一个根; (2)若x0是一个标量,则fzero先找出一个包含 的 若 是一个标量 是一个标量, 先找出一个包含x0的 先找出一个包含 区间,使得f在这个区间两个端点上的值异号 在这个区间两个端点上的值异号, 区间,使得 在这个区间两个端点上的值异号,然后再 在这个区间内寻找方程f=0的根;如果找不到这样的区 的根; 在这个区间内寻找方程 的根 间,则返回 NaN。 。
solve也可以用来解方程组 也可以用来解方程组 solve(f1,f2,...,fN,v1,v2,...,vN) 求解由 f1,f2,...,fN 确定的方程组关于 v1, v2,...,vN 的解。 的解。
x + 2 y − z = 27 例:解方程组 x+z=3 x 2 + 3 y 2 = 28
在 Matlab中表示为相应的向量: 中表示为相应的向量:
[an , an−1 , … , a1 , a0 ]
3 2 例: 2 x − x + 3
[2, − 1, 0, 3]
注:系数中的零不能省! 系数中的零不能省!
多项式四则运算
多项式加减运算: 多项式加减运算:Matlab没有提供专门进行多项式 没有提供专门进行多项式 加减运算的函数,事实上, 加减运算的函数,事实上,多项式的加减就是其所对 应的系数向量的加减运算。 应的系数向量的加减运算。 对于次数相同的多项式, 对于次数相同的多项式,可以直接对其系数向量 进行加减运算; 进行加减运算; 如果两个多项式次数不同, 如果两个多项式次数不同,则应该把低次多项式 中系数不足的高次项用0补足 然后进行加减运算。 补足, 中系数不足的高次项用 补足,然后进行加减运算。 例: p1 = 2 x 3 − x 2 + 3 p2 = 2 x + 1 p1 + p2 = 2 x 3 − x 2 + 2 x + 4
相关文档
最新文档