MATLAB 代数

MATLAB 代数

到目前为止,我们已经看到所有示例都可以在MATLAB及其GNU(也称为Octave)中运行。但是,为了求解基本的代数方程,MATLAB和Octave几乎没有什么不同,因此我们将尝试在单独的部分中介绍MATLAB和Octave。

在这里插入图片描述

我们还将讨论代数表达式的分解和简化。

在MATLAB中求解基本代数方程
solve函数用于求解代数方程。最简单的形式是,solve函数将用引号引起来的方程式作为参数。

例如,让我们求解方程x-5 = 0中的x

solve(‘x-5=0’)
MATLAB将执行上述语句并返回以下结果-

ans =
5
您也可以将Solve函数称为-

y = solve(‘x-5 = 0’)
MATLAB将执行上述语句并返回以下结果-

y =
5
您甚至可能不包括等式的右侧-

solve(‘x-5’)
MATLAB将执行上述语句并返回以下结果-

ans =
5
如果方程式包含多个符号,则默认情况下MATLAB会假定您正在求解x,但是,solve函数具有另一种形式-

solve(equation, variable)
在这里,您还可以提及变量。

例如,让我们求解v的方程v – u – 3t 2 =0。在这种情况下,我们应该写-

solve(‘v-u-3*t^2=0’, ‘v’)
MATLAB将执行上述语句并返回以下结果-

ans =
3*t^2 + u
用Octave法求解基本代数方程
roots函数用于求解Octave中的代数方程式,您可以编写以下示例,如下所示:

例如,让我们求解方程x-5 = 0中的x

示例
roots([1, -5])
Octave将执行以上语句并返回以下结果-

ans = 5
您也可以将Solve函数称为-

示例
y = roots([1, -5])
Octave将执行以上语句并返回以下结果-

y = 5
在MATLAB中求解二次方程
solve函数还可以求解高阶方程。它通常用于求解二次方程。该函数以数组形式返回方程式的根。

以下示例解决了二次方程x 2 -7x +12 =0。创建脚本文件并键入以下代码-

eq = ‘x^2 -7*x + 12 = 0’;
s = solve(eq);
disp('The first root is: '), disp(s(1));
disp('The second root is: '), disp(s(2));
运行文件时,它显示以下结果-

The first root is:
3
The second root is:
4
用Octave法求解二次方程
下面的示例以Octave求解二次方程x 2 -7x +12 = 0。创建一个脚本文件并输入以下代码-

示例
s = roots([1, -7, 12]);

disp('The first root is: '), disp(s(1));
disp('The second root is: '), disp(s(2));
运行文件时,它显示以下结果-

The first root is:
4
The second root is:
3
在MATLAB中求解高阶方程
solve函数还可以求解高阶方程。例如,让我们求解一个三次方程为(x-3)2(x-7)= 0

solve(‘(x-3)^2*(x-7)=0’)
MATLAB将执行上述语句并返回以下结果-

ans =
3
3
7
对于高阶方程,根长包含许多项。您可以通过将此类根转换为double来获得其数值。以下示例解决了四阶方程x 4 − 7x 3 + 3x 2 − 5x + 9 = 0。

创建一个脚本文件并输入以下代码-

eq = ‘x^4 - 7x^3 + 3x^2 - 5*x + 9 = 0’;
s = solve(eq);
disp('The first root is: '), disp(s(1));
disp('The second root is: '), disp(s(2));
disp('The third root is: '), disp(s(3));
disp('The fourth root is: '), disp(s(4));

%将根转换为double类型
disp(‘Numeric value of first root’), disp(double(s(1)));
disp(‘Numeric value of second root’), disp(double(s(2)));
disp(‘Numeric value of third root’), disp(double(s(3)));
disp(‘Numeric value of fourth root’), disp(double(s(4)));
运行文件时,它返回以下结果-

The first root is:
6.630396332390718431485053218985
The second root is:
1.0597804633025896291682772499885
The third root is:

  • 0.34508839784665403032666523448675 - 1.0778362954630176596831109269793*i
    The fourth root is:
  • 0.34508839784665403032666523448675 + 1.0778362954630176596831109269793*i
    Numeric value of first root
    6.6304
    Numeric value of second root
    1.0598
    Numeric value of third root
    -0.3451 - 1.0778i
    Numeric value of fourth root
    -0.3451 + 1.0778i
    请注意,最后两个根是复数。

在Octave中求解高阶方程
以下示例解决了四阶方程x 4 − 7x 3 + 3x 2 − 5x + 9 = 0。

创建一个脚本文件并输入以下代码-

示例
v = [1, -7, 3, -5, 9];
s = roots(v);

%将根转换为double类型
disp(‘Numeric value of first root’), disp(double(s(1)));
disp(‘Numeric value of second root’), disp(double(s(2)));
disp(‘Numeric value of third root’), disp(double(s(3)));
disp(‘Numeric value of fourth root’), disp(double(s(4)));
运行文件时,它返回以下结果-

Numeric value of first root
6.6304
Numeric value of second root
-0.34509 + 1.07784i
Numeric value of third root
-0.34509 - 1.07784i
Numeric value of fourth root
1.0598
在MATLAB中求解方程组
solve函数还可用于生成涉及多个变量的方程组的解。让我们举一个简单的实例来演示这种用法。

让我们求解方程式-

5x + 9y = 5

3x – 6y = 4

创建一个脚本文件并输入以下代码-

s = solve(‘5x + 9y = 5’,‘3x - 6y = 4’);
s.x
s.y
运行文件时,它显示以下结果-

ans =
22/19
ans =
-5/57
同样,您可以求解更大的线性系统。考虑以下一组方程式-

x + 3y -2z = 5

3x + 5y + 6z = 7

2x + 4y + 3z = 8

Octave方程组的求解
我们有一些不同的方法来求解n个未知数中的n个线性方程组。让我们举一个简单的实例来演示这种用法。

让我们求解方程式-

5x + 9y = 5

3x – 6y = 4

这样的线性方程组可以写成单矩阵方程Ax = b,其中A是系数矩阵,b是包含线性方程右侧的列向量,x是表示解的列向量,如下所示:在下面的程序中显示-

创建一个脚本文件并输入以下代码-

示例
A = [5, 9; 3, -6];
b = [5;4];
A \ b
运行文件时,它显示以下结果-

ans =

1.157895
-0.087719
同样,您可以解决较大的线性系统,如下所示-

x + 3y -2z = 5

3x + 5y + 6z = 7

2x + 4y + 3z = 8

在MATLAB中展开和收集方程式
expand和collect分别用来展开和收集一个方程。以下示例演示了概念-

当使用许多符号函数时,应声明变量是符号性的。

创建一个脚本文件并输入以下代码-

syms x %符号变量x
syms y %符号变量y

%扩展方程
expand((x-5)(x+9))
expand((x+2)
(x-3)(x-5)(x+7))
expand(sin(2*x))
expand(cos(x+y))

%收集方程式
collect(x^3 (x-7))
collect(x^4
(x-3)*(x-5))
运行文件时,它显示以下结果-

ans =
x^2 + 4x - 45
ans =
x^4 + x^3 - 43
x^2 + 23x + 210
ans =
2
cos(x)sin(x)
ans =
cos(x)cos(y) - sin(x)sin(y)
ans =
x^4 - 7
x^3
ans =
x^6 - 8
x^5 + 15
x^4
倍频程中的展开和收集方程
您需要拥有一个symbolic软件包,该软件包分别提供expand和collect函数来扩展和收集方程式。以下示例演示了概念-

当使用许多符号函数时,应声明变量是符号变量,但是Octave定义符号变量的方法不同。注意使用Sin和Cos,它们也在符号包中定义。

创建一个脚本文件并输入以下代码-

%首先,加载包,确保它已安装。
pkg load symbolic

%使symbols模块可用
symbols

%定义符号变量
x = sym (‘x’);
y = sym (‘y’);
z = sym (‘z’);

%扩展方程
expand((x-5)(x+9))
expand((x+2)
(x-3)(x-5)(x+7))
expand(Sin(2*x))
expand(Cos(x+y))

%收集方程式
collect(x^3 (x-7), z)
collect(x^4
(x-3)*(x-5), z)
运行文件时,它显示以下结果-

ans =

-45.0+x^2+(4.0)*x
ans =

210.0+x4-(43.0)*x2+x^3+(23.0)*x
ans =

sin((2.0)*x)
ans =

cos(y+x)
ans =

x^(3.0)*(-7.0+x)
ans =

(-3.0+x)x^(4.0)(-5.0+x)
代数表达式的因式分解和简化
factor函数分解一个表达式,simplify函数简化一个表达式。以下示例演示了概念-

实例
创建一个脚本文件并输入以下代码-

syms x
syms y
factor(x^3 - y^3)
factor([x2-y2,x3+y3])
simplify((x4-16)/(x2-4))
运行文件时,它显示以下结果-

ans =
(x - y)(x^2 + xy + y^2)
ans =
[ (x - y)(x + y), (x + y)(x^2 - x*y + y^2)]
ans =
x^2 + 4

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【linuxC语言】获取进程信息

文章目录 前言一、getrusage函数二、示例代码总结 前言 在Linux环境下,了解和获取进程的信息对于系统监控、性能优化以及调试等任务至关重要。C语言作为Linux系统编程的主要语言之一,提供了丰富的系统调用和库函数,可以帮助我们轻松地获取进…

导数之光:探寻机器学习中的微变奥秘

在当今这个数据驱动的时代,机器学习以其强大的学习和预测能力,成为了推动科技进步的重要力量。而在机器学习的背后,数学原理,尤其是导数的应用,为其提供了坚实的理论支撑。本文将详细探讨导数在机器学习中的体现&#…

职场商务口才能力精品课

职场商务口才能力精品课(3篇) 以下是关于职场商务口才能力的三篇精品课内容概述: **篇:基础篇——商务口才的基石 课程主题:商务口才的基础技能与心态建设 内容概要: 商务口才的重要性:首先强…

告别JSON慢时代!Msgpack:数据传输界的隐秘加速器 eksposed!

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

ThreeJS:坐标辅助器与轨道控制器

ThreeJS与右手坐标系 使用ThreeJS创建3D场景时,需要使用一个坐标系来定位和控制对象的位置和方向。 ThreeJS使用的坐标系是右手坐标系,即:X轴向右、Y轴向上、Z轴向前,如下图所示, ThreeJS-右手坐标系 Tips:…

鸿蒙学习1概况

鸿蒙学习1相关概念 前言相关概念Stage 模型1. AbilityStage2. UIAbility组件和ExtensionAbility组3. WindowStage4. Context 事件传递UIAbility组件与UI的数据同步UIAbility组件间交互(设备内) 进程模型线程模型 前言 有时间多看官网,官网的…

ctfshow web78 获取flag(用老版的火狐浏览器)

题&#xff1a; 第一种&#xff1a;利用input伪协议 ,获取到flag ?filephp://input POST data <?php system(tac ls) ?> 第二种&#xff1a;利用flter协议,获取到flag https://21d9e58a-c0fd-47ea-a9c4-d875100f2fdb.challenge.ctf.show/?filephp://filter/readcon…

如何彻底删除python

点击菜单栏中的“开始”&#xff0c;打开“运行”。 在运行上输入“cmd”&#xff0c;点击“确定”&#xff0c;接着输入“python --version”&#xff0c;得到一个程序的版本。 然后到这个网上下载对应的程序的版本&#xff0c;接着点击这个版本软件&#xff0c;点击这个卸载。…

java入门-日期类

日期类 Date类 Date类表示特定的时间&#xff0c;可以精确到毫秒。 获取Date对象 Date date new Date(); 构造方法 /*** Allocates a <code>Date</code> object and initializes it so that* it represents the time at which it was allocated, measured to…

WebStorm2024版 将项目上传到gitee

目录 一、准备 WebStorm gitee 二、上传代码到Gitee 三、过程中遇到的问题 报错&#xff1a;You may want to first integrate the remote changes (e.g., git pull ...) before pushing again. 报错&#xff1a;fatal: refusing to merge unrelated histories 报错&a…

Linux深入学习内核 - 中断与异常(下)

软中断&#xff0c;Tasklet和Work Queue 由内核执行的几个任务之间有一些不是紧急的&#xff0c;他们可以被延缓一段时间&#xff01;把可延迟的中断从中断处理程序中抽出来&#xff0c;有利于使得内核保持较短的响应时间&#xff0c;所以我们现在使用以下面的这些结构&#x…

【linux】进程间通信(匿名管道)

对于本篇文章我们采取三段论&#xff1a;是什么 为什么 怎么办。 目录 进程间为什么要通信&#xff1f;进程间如何通信&#xff1f;进程间怎么通信&#xff1f;匿名管道&#xff1a;匿名管道原理&#xff1a;代码示例&#xff1a;匿名管道的情况与特征&#xff1a; 进程间为什…

双指针(C++)

文章目录 1、移动零2、复写零3、快乐数4、盛最多水的容器5、有效三角形的个数6、和为s的两个数7、三数之和8、四数之和 需要理解的是&#xff0c;双指针并非只有指针&#xff0c;双指针的意思是两个位置。比如对于数组来说&#xff0c;两个下标也是双指针。当然&#xff0c;也可…

二叉树中的最大路径和 - LeetCode 热题 50

大家好&#xff01;我是曾续缘&#x1f638; 今天是《LeetCode 热题 100》系列 发车第 50 天 二叉树第 15 题 ❤️点赞 &#x1f44d; 收藏 ⭐再看&#xff0c;养成习惯 二叉树中的最大路径和 二叉树中的 路径 被定义为一条节点序列&#xff0c;序列中每对相邻节点之间都存在一…

冯喜运:5.2黄金触底反弹今日还会跌吗?原油最新行情分析策略

【黄金消息面分析】&#xff1a;周三(5月1日)&#xff0c;受美联储主席鲍威尔讲话影响&#xff0c;现货黄金价格暴涨近33美元&#xff1b;周四亚市早盘&#xff0c;现货黄金守住涨幅&#xff0c;目前交投于2323.69美元/盎司。此外&#xff0c;美联储主席鲍威尔(Jerome Powell)未…

RoNID:通过生成可靠标签与聚类友好型表征来实现新意图的发现

论文地址&#xff1a;https://arxiv.org/abs/2404.08977 原文地址&#xff1a;intents-are-not-going-away-ronid-is-a-new-intent-discovery-framework 2024 年 4 月 26 日 Robust New Intent Discovery&#xff08;RoNID&#xff09;框架致力于在开放域场景中识别已知意图并合…

树莓派控制步进电机(上):硬件连接

目录 说明 硬件连接 DM542的连接方法 树莓派的连接方法 参考文献 说明 最近需要测试树莓派控制步进电机的功能&#xff0c;在查阅网上资料的基础上做了一些整理和测试&#xff0c;特别记录在此。这里我们使用的是树莓派4B开发板&#xff0c;步进电机为6线两相步进电机&am…

探索APP分发的含义和小猪APP分发平台的优势(小猪APP分发平台)

一、APP分发的基本含义 APP分发指的是将开发完成的APP通过特定渠道推广给用户的过程。这个过程涵盖探索APP分发的含义和小猪APP分发平台的优势了从提交、审核到发布的全过程探索APP分发的含义和小猪APP分发平台的优势&#xff0c;目的是让APP更好地触达潜在用户探索APP分发的含…

AI时代程序员必备的22个网站,你了解多少?

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …

2024-05-02 商业分析-杭州小万科技-商业模式分析

摘要: 对杭州小万科技的商业模式进行分析,以对其做出客观的评估。 杭州小万科技的资料: 杭州小万科技有限公司 - 企知道 (qizhidao.com) 杭州小万科技有限公司网站备案查询 - 天眼查 (tianyancha.com) 杭州小万科技有限公司 - 爱企查 (baidu.com) ​ 2023年年报: