matlab使用教程(18)—多项式的定义和运算

news2024/11/16 3:16:49

1.创建并计算多项式

        此示例说明如何在 MATLAB® 中将多项式表示为向量以及根据相关点计算多项式。

1.1 表示多项式

        MATLAB® 将多项式表示为行向量,其中包含按降幂排序的系数。例如,三元素向量
p = [p2 p1 p0];
表示多项式
        创建一个向量以表示二次多项式
p = [1 -4 4];
        此外,还必须将系数为 0 的多项式中间项输入到该向量中,因为 0 用作 x 的特定幂的占位符。 创建一个向量来表示多项式
p = [4 0 0 -3 2 33];

1.2 多项式的计算

        将多项式作为向量输入到 MATLAB® 后,请使用 polyval 函数根据特定值计算多项式。
使用 polyval 计算 p (2)
polyval(p,2)
ans = 153
        您也可以使用 polyvalm 以矩阵方式计算多项式。一个变量中的多项式表达式

 将变为矩阵表达式

        其中,X 是方阵, I 是单位矩阵。
        创建方阵 X 并根据 X 计算 p
X = [2 4 5; -1 0 3; 7 1 5];
Y = polyvalm(p,X)
Y = 3×3
154392 78561 193065
49001 24104 59692
215378 111419 269614

2.多项式的根

        此示例演示如何通过多种不同的方法计算多项式的根。

2.1 数值根

        roots 函数用于计算系数向量表示的单变量多项式的根。 例如,创建一个向量以表示多项式 x²  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) 返回相同的答案(取决于舍入误差、排序和缩放)。

2.2 使用代换法求根

        您可以通过使用代换法简化方程来对涉及三角函数的多项式方程求解。一个变量的生成多项式不再包含任何三角函数。
        例如,计算 θ 用于对该方程进行求解的值
3cos ² ( θ ) − sin( θ ) + 3 = 0 .
        利用 cos²(θ) = 1 − sin²(θ) ,完全以正弦函数的方式表示该方程:
−3sin²(θ ) − sin( θ ) + 6 = 0 .
        利用代换法 x = sin( θ ) ,将该方程表示为简单的多项式方程:
−3x² − 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
10 -14 ×
-0.0888 + 0.0647i
0.2665 + 0.0399i

2.3 特定区间内的根

        使用 fzero 函数求多项式在特定区间内的根。在其他使用情况下,如果您绘制多项式并想要知道特定根的值,则这种方法很适用。
例如,创建一个函数句柄以表示多项式
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*' )

2.4 符号根

        如果您有 Symbolic Math Toolbox™,则还会提供以符号形式计算多项式的其他选项。一种方式是使用solve 函数。
syms x
s = solve(x^2-x-6)
s =
-2
3
        另一种方式是使用 factor 函数计算多项式各项的因子。
F = factor(x^2-x-6)
F =
[ x + 2, x - 3]

3.对多项式求积分和微分

        此示例演示如何使用 polyint polyder 函数对由系数向量表示的任何多项式求解析积分或微分。使用 polyder 获取多项式 的导数。生成的多项式为
p = [1 0 -2 -5];
q = polyder(p)
q = 1×3
3 0 -2
        同样,使用 polyint 对多项式 求积分。生成的多项式为
p = [4 -3 0 1];
q = polyint(p)
q = 1×5
1 -1 0 1 0
        polyder 也可以计算两个多项式积或商的导数。例如,创建两个向量来表示多项式a ( x ) =   + 3 x + 5
b ( x ) = 2   + 4 x + 6
a = [1 3 5];
b = [2 4 6];
        通过调用带有单个输出参数的 polyder 来计算导数
c = polyder(a,b)
c = 1×4
8 30 56 38
        通过调用带有两个输出参数的 polyder 来计算导数 生成的多项式为

[q,d] = polyder(a,b)
q = 1×3
-2 -8 -2
d = 1×5
4 16 40 48 36

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/907625.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一文看懂!数据管道和数据流在数据分析中的作用

当我们谈论数据分析时,我们通常会想到一系列的步骤,包括数据收集、数据清洗、数据分析和数据可视化等。然而,在这些步骤中,有两个非常重要的概念:数据管道和数据流。这两个概念在数据分析过程中起着至关重要的作用。本…

Vue3组合式API详解 - 大型应用的高端写法

目录 01-setup方法与script_setup及ref响应式02-事件方法_计算属性_reactive_toRefs03-生命周期_watch_watchEffect04-跨组件通信方案provide_inject05-复用组件功能之use函数06-利用defineProps与defineEmits进行组件通信 01-setup方法与script_setup及ref响应式 在Vue3.1版本…

图片怎么转换成pdf格式?可以试试这样转换

图片怎么转换成pdf格式?图片转换成PDF格式是一个常见的需求,无论是为了方便存储还是为了分享文件,将图片转换成PDF格式都是一个不错的选择。有许多软件和在线工具可以帮助你完成这个任务,下面就给大家介绍一款转换工具。 【迅捷PD…

中期国际:MT4交易平台介绍:功能、优势与适用范围

在外汇市场中,MetaTrader 4(简称MT4)被广泛认可为最受欢迎的交易平台之一。它具备丰富的功能和独特的优势,不仅适用于个人零售交易者,也广泛应用于金融机构和专业交易员。本文将介绍MT4交易平台的关键功能、独有优势以及适用范围。 首先&…

隔断让你的办公室变得更加智能、环保、人性化

隔断可以在办公室中起到多种重要作用,使办公室更加智能、环保和人性化。以下是一些可能的方式: 1. 智能办公室控制系统:可以通过隔断集成智能办公室控制系统,实现办公室照明、温度和空调等设备的自动调节,提高能效和舒…

Linux系统下检验Tensorflow 2.xx版本和1.xx版本是否安装成功

目录 版本问题Tensorflow 1.xx的测试代码:Tensorflow 2.xx的测试代码:Tensorflow 2.6版本实际的测验结果 总结 版本问题 查询资料发现,多数检验Tensorflow是否安装成功的方法,多数方法都是1.xx版本的,直接使用1.xx版本…

【Linux】IO模型

【Linux】IO模型 文章目录 【Linux】IO模型1、模型概念1.1 IO概念1.2 模型应用 2、模型种类2.1 阻塞IO2.2 非阻塞IO2.3 信号驱动IO2.4 IO多路转接2.5 异步IO 3、概念对比3.1 同步、异步通信3.2 阻塞、非阻塞 4、fcntl4.1 函数原型4.2 指令参数4.3 实现非阻塞IO 5、IO多路转接5.…

AlmaLinux 向红帽示好,被拒绝了

导读AlmaLinux 向红帽示好,被拒绝了。 红帽关闭 CentOS,推行 CentOS Stream 成为 RHEL 上游,其中一个理由是希望社区来参与 CentOS Stream/RHEL 的开发,并指责 AlmaLinux 等 RHEL 克隆品只是简单的重建,而没有做出任何…

6-模板初步使用

官网: 中文版: 介绍-Jinja2中文文档 英文版: Template Designer Documentation — Jinja Documentation (2.11.x) 模板语法 1. 模板渲染 (1) app.py 准备数据 import jsonfrom flask import Flask,render_templateimport settingsapp Flask(__name__) app.config.from_obj…

基于STM32的OLED多级菜单GUI实现(简化版智能手表)

前言:本文的OLED多级菜单UI为一个综合性的STM32小项目,使用多传感器与OLED显示屏实现智能终端的效果。项目中的多级菜单UI使用了较为常见的结构体索引法去实现功能与功能之间的来回切换,搭配DHT11,RTC,LED,…

git创建分支和合并分支

1.创建分支 git创建分支只需要使用switch 命令就行: git switch -c 分支名 创建分支并切换到该分支 后面括号里面的内容发生改变就是修改了分支 。 然后想要合并分支就在 创建的分支中 进行提交修改的内容,还是通过:add 命令和commit命令…

node没有自动安装npm时,如何手动安装 npm

之前写过一篇使用 nvm 管理 node 版本的文章,node版本管理(Windows) 有时候,我们使用 nvm 下载 node 时,node 没有自动下载 npm ,此时就需要我们自己手动下载 npm 1、下载 npm下载地址:&…

m3u8视频怎么保存到本地?这个小妙招了解下

m3u8是一种视频文件格式,通常用于流媒体服务,可以将大型视频文件分割成较小的TS分段进行传输,从而使得视频的传输更加流畅和高效。。m3u8文件包含了一个视频播放列表,其中包含了所有的TS分段的URL地址,以及每个分段的时…

暑期高铁站大量遗失物品,FindMy帮助寻找

近日,一女子在上海坐高铁时,将户口本、房产证遗落安检处的新闻引起网友的关注。然后业内人士表示:常事,车站什么都能捡到。 据中国铁路透露,暑运期间,上海虹桥站客流增加,日均发送旅客20多万人…

四川玖璨电商:2023怎样运营短视频?

​短视频的兴起和流行让越来越多的人关注和运营短视频号。如何运营短视频号,吸引更多的观众和粉丝?下面四川玖璨电商小编将介绍几个关键点。 首先,确定短视频的定位和主题非常重要。根据自己的兴趣和特长,确定一个独特的主题&…

通过远程访问解决家人的电脑难题

家里老人使用电脑、手机等设备遇到问题,子女在其他城市没法现场解决,远程沟通很困难。有没有一种方法可以随时远程帮助家人解决电脑、手机相关问题? 通过远程桌面软件,你可以与父母一起实时解决问题。这样他们就不会一遍遍给你打…

ARM开发(LED点灯实验)

1.汇编实现开发板三盏灯点亮熄灭&#xff1b; .text .global _start _start: /**********LED123点灯**************/RCC_INIT:1使能PE10 PF10 PE8RCC..寄存器,E[4]1 F[5]1 0x50000a28ldr r0,0x50000a28ldr r1,[r0]orr r1,r1,#(0x3 << 4)str r1,[r0]LED1_INET:2初始化LED…

三分钟上手! 一文看懂 Git 的底层工作原理

目录 1. 三分钟上手! 一文看懂 Git 的底层工作原理1.1. Git 目录结构1.2. Git 三大对象1.3. Git Brach 和 Tag 1. 三分钟上手! 一文看懂 Git 的底层工作原理 1.1. Git 目录结构 Git 的本质是一个文件系统(很重要, 记住这句话, 理解这句话), 工作目录中的所有文件的历史版本以…

跟随角色镜头时,解决地图黑线/白线缝隙的三种方案

下面一共三个解决方案&#xff0c;这里我推荐第二个方案解决&#xff0c;因为够快速和简单。 现象&#xff1a; 解决方案一&#xff1a; 参考【Unity2D】去除地图中的黑线_unity选中后有线_香菇CST的博客-CSDN博客&#xff0c;博主解释是因为抗锯齿采样导致的问题。 具体到这…