matlab—方程式求根

十五、方程式求根

15.1 symbolic variable

我们以一个例子开头,有一个方程式:y=x^2-2x-8,我们要求y=0时,x的值。首先我们试着把y输入到matlab里去看看

图15-1 示例1

    我们发现结果并不对,因为没有定义x,那x应该怎么定义呢?我们要求的是x,x在这里只是一个符号而已,所以我们就要用到符号变量syms

    定义一个变量为符号变量的格式为:syms x或x=sym(‘x’)

    讲到这里我们发现定义为符号变量其实有很大的作用,我们不需要给她一个实际的数值,只需要声明它表示一个符号即可,我们上一章节讲了diff函数,这里拓展一下,配合符号变量求一个函数的微分或者偏微分

图15-2 示例2

图15-3 求解微分

图15-4 求解偏微分

    利用symbolic variable求解微分我们讲完了,下面我们学习如何利用syms求解积分。上一章我们也讲了求解积分的函数是int,我们不妨试一下

图15-5 求解积分1

    到这一步还没结束,因为我们积分后面还会跟一个常数,一般条件都会给当z(x)=c,假设我们这里给定条件z(0)=0,应该如何求解呢?这里我们需要用到一个函数subs,其调用格式为subs(z,x,c),他表达的含义是函数z中的符号变量被c替代,那么下面我们就来试试添加条件以后,求出来的积分是什么样的

图15-6 求解积分2

15.2 solve()

    上面我们已经讲了如何定义一个symbolic variable,下面我们就解决一个例子y=x*sin(x)-x=0,要解决这个方程,我们首先要用到一个函数solve,其调用格式为:solve(eq,var),其中,eq代表一个符号表达式或者字符串,var代表变量名称

    示例:

图15-7 solve函数

    刚才我们做的是一个方程式求解,那如果我有两个甚至多个方程组要求解,应该怎么做呢,其实还是用到solve函数,下面给出示例

    实例:

图15-8 求解方程组

    看完了方程组的求解,我们再想想,还有什么是我们学过的方程,代数方程也可以用solve函数求解

    示例:

图15-9 代数方程求解

    我们要用a和b来表示x,就只需要在solve的第二个参数里写上x,反过来,想用其他的变量来表示某个变量,只需要把这个变量写在solve的第二个参数里即可

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏mathor

从暴力递归到动态规划

 动态规划没有那么难,但是很多老师在讲课的过程中讲的并不好,由此写下一篇文章记录学习过程

1751
来自专栏magicsoar

动态规划(dynamic programming)

动态规划的基本思想 动态规划的基本思想在于发现和定义问题中的子问题,这里子问题可也以叫做状态;以及一个子问题到下一个子问题之间 是如何转化的 也就是状态转移方程...

3165
来自专栏郭耀华‘s Blog

有效防止softmax计算时上溢出(overflow)和下溢出(underflow)的方法

1423
来自专栏数说工作室

SAS里的平行世界 | 【SAS Says · 扩展篇】IML:1.入门

本节目录: 1. IML基本语句 2. 标量、向量与矩阵 (1)定义标量 (2)定义向量 (3)定义矩阵 3. 矩阵的元素运算 (1...

3856
来自专栏fangyangcoder

leetcode(三)

给定一个二维的矩阵(矩阵的数全由1和0组成),任意反转矩阵的每一行和每一列(0反转成1,1反转成0),求出最大矩阵分数,矩阵分数的求法是矩阵每一行代表二进制数,...

1183
来自专栏郭耀华‘s Blog

有效防止softmax计算时上溢出(overflow)和下溢出(underflow)的方法

《Deep Learning》(Ian Goodfellow & Yoshua Bengio & Aaron Courville)第四章「数值计算」中,谈到了...

2984
来自专栏我是攻城师

十大算法,让你轻松进阶高手

3877
来自专栏漫漫深度学习路

pytorch学习笔记(二):gradient

gradient 在BP的时候,pytorch是将Variable的梯度放在Variable对象中的,我们随时都可以使用Variable.grad得到对应Var...

2898
来自专栏深度学习自然语言处理

如何防止softmax函数上溢出(overflow)和下溢出(underflow)

《Deep Learning》(Ian Goodfellow & Yoshua Bengio & Aaron Courville)第四章「数值计算」中,谈到了上...

38310
来自专栏菩提树下的杨过

“AS3.0高级动画编程”学习:第四章 寻路(AStar/A星/A*)算法 (上)

一提到“A*算法”,可能很多人都有"如雷贯耳"的感觉。用最白话的语言来讲:把游戏中的某个角色放在一个网格环境中,并给定一个目标点和一些障碍物,如何让角色快速“绕...

2126

扫码关注云+社区