2021-03-01 Matlab 多项式的根求解
Matlab 多项式的根求解
分享一下通过多种不同的方法计算多项式的根。
数值根
使用代换法求根
特定区间内的根
符号根
数值根
roots
函数用于计算系数向量表示的单变量多项式的根。
例如,创建一个向量以表示多项式 x2−x−6,然后计算多项式的根。
p = [1 -1 -6];
r = roots(p)
r =
3
-2
按照惯例,MATLAB以列向量形式返回这些根。
poly
函数将这些根重新转换为多项式系数。对向量执行运算时,poly
和 roots
为反函数,因此 poly(roots(p))
返回 p
(取决于舍入误差、排序和缩放)。
p2 = poly(r)
p2 =
1 -1 -6
对矩阵执行运算时,poly 函数会计算矩阵的特征多项式。特征多项式的根是矩阵的特征值。因此,roots(poly(A)) 和 eig(A) 返回相同的答案(取决于舍入误差、排序和缩放)。
使用代换法求根
通过使用代换法简化方程来对涉及三角函数的多项式方程求解。一个变量的生成多项式不再包含任何三角函数。
例如,计算θ用于对该方程进行求解的值
3cos2(θ)−sin(θ)+3=0.
利用 cos2(θ)=1−sin2(θ),完全以正弦函数的方式表示该方程:
−3sin2(θ)−sin(θ)+6=0.
利用代换法 x=sin(θ),将该方程表示为简单的多项式方程:
−3x2−x+6=0.
创建一个向量以表示多项式。
p = [-3 -1 6];
求多项式的根。
r = roots(p)
r = 2×1
-1.5907
1.2573
要撤消代换法,请使用 θ=sin−1(x)。asin
函数计算反正弦。
theta = asin(r)
theta = 2×1 complex
-1.5708 + 1.0395i
1.5708 - 0.7028i
验证 theta
中的元素是否为θ中用来对原始方程求解的值(在舍入误差内)。
f = @(Z) 3*cos(Z).^2 - sin(Z) + 3;
f(theta)
ans = 2×1 complex
1.0e-14 *
-0.0888 + 0.0647i
0.2665 + 0.0399i
特定区间内的根
使用 fzero
函数求多项式在特定区间内的根。在其他使用情况下,如果要绘制多项式并想要知道特定根的值,则这种方法很适用。
例如,创建一个函数句柄以表示多项式 3x7+4x6+2x5+4x4+x3+5x2。
p = @(x) 3*x.^7 + 4*x.^6 + 2*x.^5 + 4*x.^4 + x.^3 + 5*x.^2;
在区间 [−2,1] 内绘制该函数。
x = -2:0.1:1;
plot(x,p(x))
ylim([-100 50])
grid on
hold on
从绘图中,多项式在 0
和另一个接近 -1.5
的位置各有一个简单的根。使用 fzero
计算并绘制接近 -1.5
的根。
Z = fzero(p, -1.5)
Z = -1.6056
plot(Z,p(Z),'r*')
符号根
如果你有 Symbolic Math Toolbox™,则还会提供以符号形式计算多项式的其他选项。一种方式是使用 solve
(Symbolic Math Toolbox) 函数。
syms x
s = solve(x^2-x-6)
s =
-2
3
另一种方式是使用 factor
(Symbolic Math Toolbox) 函数计算多项式各项的因子。
F = factor(x^2-x-6)
F =
[ x + 2, x - 3]
2021-03-01 Matlab 多项式的根求解相关推荐
- 【一、建站综述及步骤简介】2021最详细wordpress博客建站教程(2021.03.01更新)
通过本wordpress博客建站教程系列系列文章,你可以不懂网页代码条件下,搭建一个谷歌insight测评90分的个人博客,最低费用在每年80块.本人搭建博客小站点击下面链接即可进入: ...
- linux3.0 usb键盘驱动,USBOS V3.0.2021.03.01
本帖最后由 chiannet 于 2021-3-21 20:45 编辑 第一部分 USBOS v3 增强版 ISO版与UD版合体,总体积1.62GB--3.0GB(视是否拓展)! USBOS V3是计 ...
- matlab多项式计算(求根、由根创建、导数、积分)
1 matlab多项式求根 举例:求解多项式3x4-10x3+15x+1000的根 Matlab代码 %% 多项式求解 p = [3 -10 0 15 1000]; r = roots(p); 运行结 ...
- matlab根据根求多项式,matlab求解多项式的根
因此牛顿法也称切线法,是非线性方程求根方法中收敛最快的方 法. 2. matlab 中方程求解的基本命令 roots(p):求多项式方程的根,其中 p 是多项式系数按降幂排列所形成的向量. solve ...
- matlab多项式加法运算,matlab多项式运算与代数方程求解解析.ppt
* 多项式运算与代数方程求解 数学软件 Matlab Matlab基础及应用 * 多项式转化为符号表达式:poly2sym 四则运算:conv.deconv 导数与积分:ployder.polyint ...
- 方程组在原点附近解matlab,Matlab计算题:求解下列非线性方程组在原点附近的根: 9x^2 + 36y^2 + 4z^2 =36 X^2 -2y^2- 20z =0 16x –...
Matlab计算题:求解下列非线性方程组在原点附近的根: 9x^2 + 36y^2 + 4z^2 =36 X^2 -2y^2- 20z =0 16x – 关注:290 答案:2 mip版 解决时间 ...
- matlab求多项式的实数根_matlab中怎么求多项式的根
2017-10-09 回答 用matlab解方程的三个实例 1.对于多项式p(x)=x3-6x2-72x-27,求多项式p(x)=0的根,可用多项式求根函数roots(p),其中p为多项式系数向量,即 ...
- matlab特征方程的根,MATLAB 求解特征方程的根轨迹图稳定性分析
原文:http://tecdat.cn/?p=3871 根轨迹分析在下文中,我们提供了用于根轨迹分析的强大MATLAB命令的简要描述.读者可能想知道为什么当强大的MATLAB命令可用时,教师强调学习手 ...
- matlab 多项式表达,MATLAB自学笔记(十七):多项式及其函数
终于结束了关于MATLAB的基础知识学习部分,开始了对数据的分析 1.多项式的表达与创建 MATLAB中用一维行向量来表示多项式,将多项式的系数按照降幂次序存放在向量中. 请注意上面一句话,这将是MA ...
最新文章
- 基于MATLAB的TDOA算法的仿真
- 云原生/低代码/数据科学/计算等方向内容整理志愿者招募了!
- Linux用户配置文件(第二版)
- 人行强拒规则拒绝评分人群
- NIOS II 常见问题总结FAQ - xiangyuqxq的专栏 - CSDN博客
- localForage Web 离线存储
- fig, ax = plt.subplots(figsize = (a, b))解析 与 plt.subplot()函数解析
- Linux之vim常用扩展操作
- 10g添加用户 oracle_oracle10g下新建/删除用户
- 使用Source Insight查看Android Framework 源码
- 【MySQL】——数据库基础入门知识
- myeclipse以及tomcat乱码解决
- 【面试宝典】HR最喜欢的程序员简历模板,最佳建议篇
- 2018年计算机网络考研真题
- thing.js入门学习
- arm模拟器手机版_基于ARM的模拟器
- html表格内容自动换行符,html表格内容自动换行
- 发力1小时到家服务,山姆与京东到家共建前置仓获10倍坪效、60%月复购率...
- PPT 不支持打开显示 webp 图片
- UE4 Material 101学习笔记——23-29 水涟漪/水深/折射反射/Gerstner海浪/波光焦散/泡沫/FlowMap