Matlab学习笔记(五)

复习

一些问题

1.使用时ode45等数值命令求解常微分方程应该注意哪些问题?
[t,x]=ode45(‘f’, [t0,tf], x0, options)

function y=f(t,x)
……

t:自变量值
x:函数值
ode45:运用组合的4/5阶龙格-库塔-芬格尔算法
‘f’:由待解方程写成的m-文件名
ts:ts[t0, tf], 为自变量的初值和终值
x0:函数的初值
options:用于设定误差限(缺省时设定的相对误差为10^-3,绝对误差10^-6

2.代数方程(组)求根命令有哪些?使用时应该注意哪些问题?
solve、fzero、fsolve
solve不起作用时,选择fsolve,fzero慎用,使用条件比较苛刻

3.请解释以下三个命令的含义:
poly2sym(c), polyval(p,a), root(c)
poly2sym(c):把系数数组转换为符号多项式
polyval(p,a):求多项式函数p(x)在点a的值
roots(c):多项式函数p(x)=0时所有根(复数根)

多项式函数在点a的值:polyval(p, a)

例: p ( x ) = 3 x 4 − 7 x 3 + 2 x 2 + x + 1 p(x)=3x^4-7x^3+2x^2+x+1 p(x)=3x47x3+2x2+x+1,计算p(2.5)和p(3)的值

c = [3, -7, 2, 1, 1]; xi = [2.5, 3];
y1 = polyval(c, xi)
% 结果
y1 = 23.8125   76.0000

注意:

% 可以这样写
syms x
f = 3*x^4 - 7*x^3 + 2*x^2 + x + 1;
c = sym2poly(f) % 相对于poly2sym
多项式求根:roots

例:求方程 2 x 3 + x 2 + 4 x + 5 = 0 2x^3+x^2+4x+5=0 2x3+x2+4x+5=0 的所有根

c = [2 1 4 5]
roots(c) % 可以直接这样写 roots([2 1 4 5])
% 结果
ans = 0.2500 + 1.5612i
      0.2500 - 1.5612i
     -1.0000 + 0.0000i

注意:MATLAB按惯例规定,多项式是行向量,根是列向量
思考:已知多项式的根,如何求解多项式?

pp = poly(ans)
% 结果
pp = 1.0000    0.5000    2.0000    2.5000

主要内容(大概)

目录

多项式的四则运算
有理式的分解与合并(难点)
矩阵的生成与结构变换、矩阵的基本运算

多项式的四则运算

1.多项式的和与差:poly_add
c = poly_add(a, b); % 求两个多项式的和
c = poly_add(a, -b); % 两个多项式的差

注意:多项式的和差也可以利用向量加法计算。当两个多项式阶次不同,低阶的多项式必须用首零填补,使其与高阶多项式有同样的阶次。
例:

a =[1  6  20  50  75  84  64];  b=[2 6 12 20];
c = a + [0 0 0 b]
% 结果
c = 1     6    20    52    81    96    84
2.两个多项式的乘积:conv
m阶多项式与n阶多项式的乘积是m+n阶的多项式
a=conv(c,b);%多项式相乘,返回系数向量

例:

a=[2,-5,6,-1,9]; b=[3,-90,-18];
c=conv(a,b)
% 结果
c = 6  -195   432  -453   9  -792  -162

关于卷积(conv)的说明
在这里插入图片描述
将上述的a和b如上图放置,就可以计算出第一个值 23 = 6,就是c中6的答案来源
在这里插入图片描述
下面这一行,向左平移一格,计算方式:-5
3 + 2*-90 = -195,也就是第二个值
在这里插入图片描述
相同的操作,计算方式:63 + (-5)(-90) + 2*(-18) = 432
在这里插入图片描述
以此类推,最后一位,就是 9*(-18) = -162

3.两个多项式的商:deconv
[q, r]=deconv(b,c);%两个多项式相除,
% 返回商的系数vector(q)和余数系数vector(r)

注意: 从向量运算的角度看, 反卷积deconv是卷积conv的逆运算. 上式等价于b=conv(q,c)+r, 其中r可以看成误差。

% 卷积
a=[2,-5,6,-1,9]; b=[3,-90,-18];
c=conv(a,b)
% 结果
c = 6  -195   432  -453   9  -792  -162
% 反卷积
[q,r]=deconv(c,b)
% 结果
q = 2    -5     6    -1     9
r = 0     0     0     0     0     0     0

有理式的分解与合并(难点)

collect(f); %对符号多项式f进行合并同类项
expand(f);%对符号多项式f进行展开
horner(f);%对符号多项式f进行嵌套分解
factor(f);%对符号多项式f进行因式分解
[a,b,r]=residue(p,q); %返回将p(x)/q(x)分解为最简式之和
[p,q]=residue(a,b,r); %返回将简单分式之和合并为有理分式
format rat; % 写出分数的精确值的形式
1.有理函数分解预备知识

有理函数:两个多项式的商表示的函数
P ( x ) Q ( x ) = a 0 x n + a 1 x x − 1 + . . . + a n b 0 x m + b 1 x m − 1 + . . . + b m \frac{P(x)}{Q(x)}=\frac{a_0x^n+a_1x^{x-1}+...+a_n}{b_0x^m+b_1x^{m-1}+...+b_m} Q(x)P(x)=b0xm+b1xm1+...+bma0xn+a1xx1+...+an
(1)n<m,真分式 (2)n >= m,假分式

有理函数的分解步骤:
有理函数 = 多项式 + 【真分式 ----> 分解为若干最简分式之和】

例: x 3 + x + 1 x 2 + 1 = x + 1 x 2 + 1 \frac{x^3+x+1}{x^2+1}=x+\frac{1}{x^2+1} x2+1x3+x+1=x+x2+1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值