求解非线性方程f (x)= 0的MATLAB数值法指令介绍(solve、fzero的方法与实例)

一、符号方程求解

       在MATLAB中,求解用符号表达式表示的代数方程可由函数solve实现,其调用格式为:
       solve(s)(求解符号表达式s的代数方程,求解变量为默认变量,当方程右端为0时,方程可以不标出等号和0,仅标出方程的左端)
       solve(s,v)(求解符号表达式s的代数方程,求解变量为v)
       solve(s1,s2,…,sn,v1,v2,…,vn)(求解符号表达式s1,s2,…,sn组成的代数方程组,求解变量分别为v1,v2,…,vn)
       让我举个栗子
求解如下方程:
在这里插入图片描述
代码:

x=solve('2*sin(3*x-pi/4)=1')

在这里插入图片描述
代码:

x= solve('x+x*exp(x)-10', 'x')   %仅标出方程的左端

二、求方程f ( x ) = 0数值解的基本方法

       并非所有的方程 f ( x ) = 0 都能求出精确解或解析解,存在这种解的方程就需要用数值解法求出近似解,有几种常见的数值解法:

       1.二分法

       2.迭代法:切线法、割线法(弦截法)

注:二分法简单方便,但收敛速度慢;
       迭代法虽然收敛速度稍微快点,但需要判断能否收敛;
       只要初值选取得当,切线法具有恒收敛且收敛速度快的优点,但需要求出函数的导数;
       弦截法不需要求导数,特别是前面介绍的快速弦截法,收敛速度很快,但是需要知道两个近似的初始根值才能作出弦,要求的初始条件较多。

三、方程f(x) = 0数值解的MATLAB实现

       MATLAB中求方程数值解的办法很多,有的是专用指令,有的是根据方程性质而借用其他专用指令求得的

       这里我们就先介绍求函数零点指令fzero吧

       求解方程f ( x ) = 0的实数根也就是求函数f ( x)的零点。MATLAB中设有求函数f (x)零点的指令fzero,可用它来求方程的实数根。该指令的使用格式为:fzero (fun, x0, options)
       ①输入参数fun为函数f (x)的字符表达式、内联函数名或M函数文件名。
       ②输入参数x0为函数某个零点的大概位置(不要取零)或存在的区间[xi,xj],要求函数f (x)在x0点左右变号,即f (xi)f (xj) < 0。
       ③输入参数options可有多种选择,若用optimset (‘disp’, ‘iter’)代替options 时,将输出寻找零点的中间数据。
       ④该指令无论对多项式函数还是超越函数都可以使用,但是每次只能求出函数的一个零点,因此在使用前需摸清函数零点数目和存在的大体范围。为此,一般先用绘图指令plot, fplot或ezplot画出函数f (x)的曲线,从图上估计出函数零点的位置。
       让我再举个栗子
如:求方程 x^2 + 4sin(x) = 25 的实数根(-2π<x < 2π)
解:
1)若fun为函数f (x)的字符表达式
       ①首先要确定方程实数根存在的大致范围。为此,先将方程变成标准形式f(x) =x2 + 4sin(x) - 25 = 0,作f(x)的曲线图:

x=-2*pi:0.1:2*pi;
f=x.^2+4*sin(x)-25;
plot(x,f);grid on;

在这里插入图片描述
从曲线上可以看出,函数的零点大约在x1= - 4和x2=5附近
       ②直接使用指令fzero求出方程在x1≈ - 4时的根

x1= fzero ('x^2+4*sin(x)-25',-4)

       若键入:

fzero ('x^2+4*sin(x)-25',-4, optimset('disp', 'iter'))

       将会显示迭代过程
       中间数据表明,求根过程中不断缩小探测范围,最后得出- 4附近满足精度的近似根
       ③求x2≈ 5的根:

x2= fzero ('x^2+4*sin(x)-25',5)

(2) 若fun为函数f (x)的M函数文件名
将方程x2 + 4sin(x) = 25编成M函数文件(实用中在函数较为复杂、而又多次重复调用时,才这样做),用fzero求解。
       ①在M文件编辑调试窗中键入:

function  yy=fan (x)
yy= x^2+4*sin(x)-25;

       以fan为文件名存盘,退出编辑调试窗,回到指令窗。
       ②确定根的大体位置;
       ③在指令窗中键入下述指令可求出 - 4 附近的根:

x1= fzero ('fan',-4)

       键入下述指令可求出5附近的根:

x2= fzero ('fan',5)

       我还要再举个栗子
如:求f(x)=x-10^x+2=0在x0=0.5附近的根
解:

x=-2.5:0.01:0.5;
fx=x-10.^x+2;
plot(x,fx)

在这里插入图片描述

       从f(x)的曲线看出曲线的零点有两个,一个在x=-2附近,另一个在x=0.5附近
       ①建立函数文件funx.m。(function [输出变量列表]=函数名(输入变量列表))

functionfx=funx(x)
fx=x-10.^x+2;

       ②调用fzero函数求根。

   z=fzero('funx',0.5)

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

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

相关文章

【youcans 的 OpenCV 学习课】9. 频率域图像滤波(下)

专栏地址&#xff1a;『youcans 的图像处理学习课』 文章目录&#xff1a;『youcans 的图像处理学习课 - 总目录』 【youcans 的 OpenCV 学习课】9. 频率域图像滤波&#xff08;下&#xff09; 图像滤波是在尽可能保留图像细节特征的条件下对目标图像的噪声进行抑制&#xff0…

SQL语句中,创建标识列、默认值及各种约束的语法介绍

虽然创建表中字段的主外键、标识列、唯一约束、check约束等可以使用视图法创建&#xff0c;但最基本的还是应该会使用sql语句来创建这些吧&#xff0c;咱废话少说&#xff0c;直接上干货&#xff01;&#xff01;&#xff01; 标识列&#xff1a; 在创建表的字段时加上identity…

SpringBoot项目的 pom.xml第一行报错

当我们第一次创建SpringBoot项目的时候有时会发现SpringBoot项目里的pom.xml第一行报错。 对于这个报错问题&#xff0c;是由于jar包版本太高了。 错误显示 我们要修改jar包的版本 解决方案如下&#xff1a; 把 <version>2.2.1.RELEASE</version>修改为 <…

SPSS基础操作(二):用迭代法处理序列相关,并建立回归方程

1、【回归】—【线性】 2、添加自变量、因变量 3、选择【统计】&#xff0c;勾选【德滨沃森】&#xff0c;然后点继续、确定 4、得到德滨沃森的值&#xff0c;即DW0.771 5、【转换】—【计算变量】 6、添加目标变量、数字表达式&#xff0c;然后确定 注&#xff1a; 7、同样方…

【OpenCV 例程 300 篇】104. 运动模糊退化模型

专栏地址&#xff1a;『youcans 的 OpenCV 例程 300篇 - 总目录』 【第 7 章&#xff1a;图像复原与重建】 104. 运动模糊退化模型 105. 湍流模糊退化模型 【youcans 的 OpenCV 例程 300 篇】104. 运动模糊退化模型 5.3 模型法估计退化函数 估计图像复原中所用的退化函数&…

我的第一个SpringBoot项目

创建我的第一个SpringBoot项目。 打开Eclipse右击选择new >> project 进入之后找到SpringBoot点击打开找到Spring Starter Project 修改SpringBoot的项目名称即name之后的内容 找到Web选择SpringWeb 项目就 创建好了如图所示 找到src/main/java点开再找到com.exampl…

SPSS基础操作(三):用一阶差分法处理数据,并建立回归方程

1、【回归】—【线性】 2、添加自变量、因变量 3、选择【统计】&#xff0c;勾选【德滨沃森】&#xff0c;然后点继续、确定 4、得到德滨沃森的值&#xff0c;即DW0.771 5、【转换】—【计算变量】 6、添加目标变量、数字表达式&#xff0c;然后确定 注&#xff1a; 7、同样方…

【OpenCV 例程 300 篇】105. 湍流模糊退化模型

专栏地址&#xff1a;『youcans 的 OpenCV 例程 300篇 - 总目录』 【第 7 章&#xff1a;图像复原与重建】 104. 运动模糊退化模型 105. 湍流模糊退化模型 【youcans 的 OpenCV 例程300 篇】105. 湍流模糊退化模型 5.3 模型法估计退化函数 估计图像复原中所用的退化函数&#…

SQL Server经典查询语句练习题及答案

注意&#xff1a;在插入数据的时候&#xff0c;需要将zahowei改成中文&#xff0c;原数据是中文的&#xff0c;因为最近这个词不能过审&#xff0c;只能用拼音代替了&#xff0c;可能是那个人出了啥事吧&#xff0c;审核不通过就挺莫名其妙的 现在有一教学管理系统&#xff0…

如何创建SpringBoot项目

对于刚刚接触SpringBoot框架的人来说一切都是未知的探索&#xff0c;我们应该如何创建一个SpringBoot项目呢&#xff1f;&#xff1f;&#xff1f; 我们可以使用Eclipse来创建我们的SpringBoot项目&#xff0c;下面就给大家讲一下创建的方法。 1.打开我们的Eclipse软件&#…

【OpenCV 例程 300 篇】106. 退化图像的逆滤波

专栏地址&#xff1a;『youcans 的 OpenCV 例程 300篇 - 总目录』 【第 7 章&#xff1a;图像复原与重建】 106. 退化图像的逆滤波 107. 退化图像的维纳滤波 108. 约束最小二乘方滤波 109. 几何均值滤波 【youcans 的 OpenCV 例程 300 篇】106. 退化图像的逆滤波 6. 退化图像复…

MySql数据类型介绍

对于刚开始学习MySql数据库的小伙伴们来说&#xff0c;MySql数据库有那些数据类型呢&#xff0c;在此我给大家总结介绍一下MySql数据库数据类型。 MySql数据类型 数据类型一共有五大类分别是&#xff1a; 整数类型&#xff1a;BIT、BOOL、TINY INT、SMALL INT、MEDIUM INT、…

【OpenCV 例程 300 篇】107. 退化图像的维纳滤波

专栏地址&#xff1a;『youcans 的 OpenCV 例程 300篇 - 总目录』 【第 7 章&#xff1a;图像复原与重建】 106. 退化图像的逆滤波 107. 退化图像的维纳滤波 108. 约束最小二乘方滤波 109. 几何均值滤波 【youcans 的 OpenCV 例程 300 篇】107. 退化图像的维纳滤波&#xff08;…

阶段项目:学生信息管理系统数据库设计

目录问题描述&#xff1a;一、后台数据库的设计1&#xff09;设计数据库2&#xff09;插入数据3&#xff09;查询数据4&#xff09;修改数据5&#xff09;管理数据1.导出数据到各种异构数据源、导出脚本2.附加和分离数据库二、前端界面的开发&#xff08;后期我们可以用dNet开发…

【OpenCV 例程 300 篇】108. 约束最小二乘方滤波

专栏地址&#xff1a;『youcans 的 OpenCV 例程 300篇 - 总目录』 【第 7 章&#xff1a;图像复原与重建】 106. 退化图像的逆滤波 107. 退化图像的维纳滤波 108. 约束最小二乘方滤波 109. 几何均值滤波 【youcans 的 OpenCV 例程 300 篇】108. 约束最小二乘方滤波 6. 退化图像…

分析设计网上书店数据库,并画E-R图

分析并设计网上书店数据库&#xff0c;绘制E-R图&#xff0c;网上书店具有如下功能&#xff1a; 1、会员的注册、登录 2、网上预订图书 3、图书信息浏览 训练技能点&#xff1a; 1、会将E-R图转换为表 2、理解数据规范化 4、将分析在SQL Server数据库中实现具体的表 Sql serv…

【OpenCV 例程 300 篇】109. 几何均值滤波

专栏地址&#xff1a;『youcans 的 OpenCV 例程 300篇 - 总目录』 【第 7 章&#xff1a;图像复原与重建】 106. 退化图像的逆滤波 107. 退化图像的维纳滤波 108. 约束最小二乘方滤波 109. 几何均值滤波 【youcans 的 OpenCV 例程 300 篇】109. 几何均值滤波 6. 退化图像复原 …

课程设计:基于SQL Server的银行ATM 存取款机系统设计与实现

目录前言一、项目背景1、项目任务2、项目技能目标3、需求概述4、开发环境5 、问题分析(1) 银行存取款业务介绍(2) 客户信息(3) 银行卡账户信息(4) 银行卡交易信息(5) 银行卡手工账户和存取款单据信息二、项目实训内容1、实训一&#xff1a;制定《数据库设计与编程规范》2、实训…

【OpenCV 例程 300 篇】110. 投影和雷登变换

专栏地址&#xff1a;『youcans 的 OpenCV 例程 300篇 - 总目录』 【第 7 章&#xff1a;图像复原与重建】 110. 投影和雷登变换 111. 雷登变换反投影重建图像 112. 滤波反投影重建图像 【youcans 的 OpenCV 例程 300 篇】110. 投影和雷登变换 7. 投影重建图像 7.1 计算机断层…

数据分析(SQL)常见面试题:开窗函数

一、什么是开窗函数 开窗函数/分析函数&#xff1a;over() 开窗函数也叫分析函数&#xff0c;有两类&#xff1a;一类是聚合开窗函数&#xff0c;一类是排序开窗函数。 开窗函数的调用格式为&#xff1a; 函数名(列名) OVER(partition by 列名 order by列名) 如果你没听…