数值分析方程求根实验matlab,数值分析实验之非线性方程求根(MATLAB实现)

一、实验目的

1. 了解一般非线性方程的求根是比较复杂的事情:要讨论(或知道)它有无实根,有多少实根;知道求近似根常用的几种方法,每种方法的特点是什么。

2. 用通过二分法(区间半分法)、不动点(也Picard)迭代法及Newton迭代(切线)法求其它非线性方程的根,并尽可能估计误差。

二、实验原理

20200520001736813ppf94pp2qjl94c8_5.png

三、实验程序

20200520001736813ppf94pp2qjl94c8_4.png

四、实验内容

1. 用二分法求方程x3-3x-1=0在的所有根.要求每个根的误差小于0.001.

提示与要求: (1) 利用精度找到迭代次数;

(2) 由f(x)=3(x2-1)可取隔根区间[-2,-1].[-1,1].[1,2]);

(3) 用程序求各隔根区间内的根.

2. 用不动点迭代求: (1)x3+2x2+10x-20=0的所有根.

或: (2)9x2-sinx-1=0在[0,1]上的一个根.

3. 用Newton迭代法求解下列之一,准确到10-5:

(1) x3-x-1=0的所有根;

(2) ex+2-x+2cosx-6=0位于[0,2]上的根.

五、实验程序

• 二分法:

文件代码:

function y = f(x)

y=x^3-3*x-1;

end

程序代码:

function Bipart(a0,b0,tol)

%a0为左区间,b0为右区间,tol为区间误差限

a=a0;b=b0;

m=ceil(log((b-a)/tol)/log(2));

for k=1:m

p=(a+b)/2;

if f(p)*f(b)<0

a=p;

else

b=p;

end

end

disp(['经过二分法求得的跟为:x=',num2str((a+b)/2,'%.6f')])

disp(['共经过',num2str(k),'次计算'])

命令窗口:

Bipart(-2,-1, 0.001)

Bipart(-1, 1, 0.001)

Bipart (1,2, 0.001)

运行结果:

20200520001736813ppf94pp2qjl94c8_6.png

• 不动点法:

文件代为:

function y = f(x)

y=9*x^2-sin(x)-1;

end

程序代码:

function Budongdian(x0,tol,m)

%x0为初始值,tol为误差容限,m为最大迭代次数

syms x

F(x)=sqrt(sin(x)+1)/3;

m=m;

text='';

x=[];

x(1)=x0;

for k=1:m

x(k+1)=F(x(k));

if (abs(x(k+1)-x(k))<=tol)==1

text='迭代成功';

disp(text);

disp(['经过不动点迭代法求得的跟为:x=',num2str(x(k+1),'%.7f')]);

disp(['共经过',num2str(k),'次计算'])

break

end

end

if isempty(text)==1

disp('Method failed')

end

命令窗口:

Budongdian(1, 0.00001, 100)

运行结果:

20200520001736813ppf94pp2qjl94c8_0.png

• 牛顿迭代法:

文件代码:

function y = f(x)

y=exp(x)+2^(-x)+2*cos(x)-6;

end

程序代码:

function Newton_gen(x0,tol,m)

%x0为初始值,tol为误差容限,m为最大迭代次数

syms x

F(x)=x-f(x)/diff(f(x));

m=m;

text='';

x=[];

x(1)=x0;

for k=1:m

x(k+1)=F(x(k));

if (abs(x(k+1)-x(k))<=tol)==1

text='迭代成功';

disp(text);

disp(['经过Newton迭代法求得的跟为:x=',num2str(x(k+1),'%.7f')]);

disp(['共经过',num2str(k),'次计算'])

break

end

end

if isempty(text)==1

disp('Method failed')

end

命令窗口:

Newton_ .gen(2, 0.00001, 100)

运行结果:

20200520001736813ppf94pp2qjl94c8_1.png

另解:

• 二分法:

定义函数:

function Bipart_2(a0,b0,tol,Tol)

%a0为左区间,b0为右区间,tol为区间误差限,Tol为f误差限

a=a0;b=b0;

m=ceil(log((b-a)/tol)/log(2));

for k=1:m

p=(a+b)/2;

if f(p)*f(b)<0

a=p;

else

b=p;

end

if abs(f((a+b)/2))

break;

end

end

disp(['经过二分法求得的跟为:x=',num2str((a+b)/2,'%.6f')])

disp(['共经过',num2str(k),'次计算'])

命令窗口:

Bipart. .2(-1, 1,0.001,0.1)

Bipart_ .2(-1, 1, 0.001, 0.000001)

运行结果:

20200520001736813ppf94pp2qjl94c8_3.png

• 不动点法:

定义函数:

function [x,k]=budong(fun,x0,tol,m)

for k=1:m

x=fun(x0);

if abs(x-x0)

break;

end

x0=x;

end

x=vpa(x,8);

function t=fun(x1)

syms x;

f=9*x.*x-sin(x)-1;

s=subs(diff(f,x),x,x1);

x=x1;

f=9*x.*x-sin(x)-1;

t=x-f/s;

命令行窗口输入:

[x,k]=budong(@fun,0.5,1e-5,100)

运行结果:

20200520001736813ppf94pp2qjl94c8_2.png

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

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

相关文章

iis php 数据库乱码,如何解决php插入数据乱码问题

php插入数据乱码的解决办法&#xff1a;首先要设置数据表的字符集为utf8&#xff1b;然后修改字符集格式&#xff1b;接着建立字符集为utf-8的数据库&#xff1b;最后通过php mysql语句插入数据即可。mysql数据库乱码问题解决办法我们在使用数据库(mysql)的时候最怕的就是数据库…

vc 通过句柄修改窗口大小_VC应用(1)通过VC修改销售订单行项目的字段

VC是SAP中非常重要的功能&#xff0c;过去多年来&#xff0c;我参与了不少使用VC的项目&#xff0c;我将通过多篇文章介绍VC的一些应用&#xff0c;本文介绍通过VC修改销售订单行项目的字段01 概览在销售订单创建时&#xff0c;对于可配置物料来说&#xff0c;不同的配置可能会…

springboot starter工作原理_98,谈谈SpringBoot的工作原理

对技术的探索&#xff0c;一切源于好奇心&#xff0c;保持好奇心&#xff0c;才能让人更年轻。至今&#xff0c;我们已经有了很多创建SpringBoot项目的经验&#xff0c;比如我们要创建一个支持web开发的项目&#xff0c;我们只需要引入web-starter模块即可。那么&#xff0c;Sp…

精英主义 遗传算法 matlab,遗传算法优化 - osc_lfs4vsih的个人空间 - OSCHINA - 中文开源技术交流社区...

1.遗传算法简介遗传算法是一种基于自然选择和群体遗传机理的搜索算法,它模拟了自然选择和自然遗传过程中的繁殖、杂交和突变现象.再利用遗传算法求解问题时,问题的每一个可能解都被编码成一个“染色体”,即个体,若干个个体构成了群体(所有可能解).在遗传算法开始时,总是随机的产…

php后台管理员登录密码错误,如果后台管理员的密码错误,我该怎么办,还有两种找回密码的方法...

Dedecms是中国著名的网站管理核心. 由于编织梦想简单易用&#xff0c;因此可以进行二次开发&#xff0c;并且可以实现各种网站. 在使用dedecms的过程中&#xff0c;如果忘记了梦想管理后台的密码怎么办&#xff1f;神山个人博客分享了两种修改(重置)管理员密码的方法.1. 下载织…

mac安装多php环境变量配置,Mac如何安装多个php版本

Mac安装多个php版本的方法&#xff1a;首先打开Mac上的终端工具&#xff0c;并确认安装Homebrew&#xff1b;然后安装【php5.5】及对应扩展&#xff1b;最后执行指令【brew unlink php55】删除brew中php的软链即可。Mac安装多个php版本的方法&#xff1a;1、打开Mac上的终端工具…

phpexcel 获取工作簿名称_工作分享 | Excel快速汇总考勤

点击蓝字关注我们每月月底&#xff0c;各位同事把考勤表报到部门后&#xff0c;检查核对再汇总一份总考勤表上报&#xff0c;传统的复制粘贴总是占用不少时间&#xff0c;还容易出错。为提高工作效率&#xff0c;现利用Excel实现考勤快速汇总。01 统一考勤模板&#xff0c;每个…

php进程通讯方式,PHP进程模型、进程通讯方式、进程线程的区别分别有哪些?

PHP进程模型是一个正在执行的程序&#xff0c;可以分配给处理器并由处理器执行的一个实体&#xff1b;PHP进程通讯方式有管道及有名管道&#xff0c;信号&#xff0c;共享内存等&#xff1b;PHP进程线程的区别有进程是资源的分配和调度的一个独立单元&#xff0c;而线程是CPU调…

iphone怎样关闭副屏_小米新设计专利曝光:“Z”型折叠屏手机

折叠屏手机可以说是最近几年的热门话题&#xff0c;虽然并未大面积普及&#xff0c;但已有多家厂商量产上市了旗下的折叠屏手机。同样作为知名厂商的小米&#xff0c;曾在此前展示过旗下的折叠屏手机视频&#xff0c;但并未真正发布。而近日曝光的一份小米旗下专利设计则表明小…

php socket开发斗地主,基于状态机模型的斗地主游戏(NodeJsSocketIO)

1. 系统结构系统考虑使用Nodejs和SocketIo实现服务器端逻辑&#xff0c;前端使用HTML5。2. 逻辑流程1 . 主要逻辑包括用户进入游戏、等待对家进入游戏、游戏过程、结束统计这4个过程。2 . 游戏过程的逻辑具体如下3 . 服务器-客户端通讯逻辑如下3. 客户端界面设计1 . 登录界面2 …

wgs84转经纬度_wgs84经纬度转为cgcs2000平面坐标

航拍测绘中,pos数据多数是wgs84&#xff0c;而GCP坐标是2000或者80坐标。有如下2情况需要转换坐标&#xff0c;1.不同坐标系刺点时&#xff0c;位置相差较远&#xff0c;影响工作效率。2.该软件不支持wgs84转国家2000&#xff0c;比如photoscan。所以需要把pos数据转为跟像控点…

oracle sql last_value,図でイメージするOracle DatabaseのSQL全集 第3回 分析関数

指定したソートキーでの、最初の行の値を求めるのが、First_Value関数。指定したソートキーでの、最後の行の値を求めるのが、Last_Value関数。指定したソートキーでの、(Row_Numberな順位が)n番目の行の値を求めるのが、nth_Value関数となります。Oracle11gR2でnth_Value関数が…

企业信息化投入中咨询服务_全过程工程咨询服务核心价值是什么

建筑行业服务现状传统建设工程的目标、计划、控制都以参与单位个体为主要对象&#xff0c;项目管理的阶段性和局部性割裂了项目的内在联系&#xff0c;导致项目管理存在明显的管理弊端&#xff0c;这种模式已经与国际主流的建设管理模式脱轨。“专而不全”、“多小散”企业的参…

交流信号叠加直流偏置_放大器偏置电流Ib需要完整的直流回路

多数工程师对于放大器偏置电流参数并不陌生&#xff0c;它是导致放大器电路产生直流噪声的又一重要影响因素。因为偏置电流经过输入端电阻网络会形成一个失调电压源&#xff0c;再通过电路的噪声增益影响输出直流噪声。所以工程师会注重电阻网络的匹配&#xff0c;降低偏置电流…

teamviewer类似软件_TeamViewer系统后台被黑客组织APT攻破,请注意防范

TeamViewer事件10月11日&#xff0c;深圳市网络与信息安全信息通报中心发布了一份编号为“2019029”的名为《关于TeamViewer客户端被远程控制的紧急通报》文件&#xff0c;文件指出目前知名远程办公工具TeamViewer已经被境外黑客组织APT41攻破&#xff0c;提醒企业组织做好防护…

软件测试用例_软件测试用例设计实战场景法

不点蓝字&#xff0c;我们哪来故事&#xff1f; 目录场景法扩展例子场景法介绍影子场景法用例设计举例场景法设计用例步骤和表示场景法举例 总结 场景法的注意点场景法影子本来想直接跳过场景法的&#xff0c;今天群友提出问题&#xff1a;1、面试官问&#xff1a;场景…

树莓派摄像头_Arducam 8MP重磅来袭,为树莓派4B构建完全同步的双摄像头方案~

大家好&#xff0c;我是小月月。双目立体景深一直是很热门的项目&#xff0c;最近已经有不少小伙伴学会在树莓派上插两个USB摄像头了&#xff0c;这个方案可以识别静态场景中各个物体的距离远近。但是两个USB摄像头捕获到的两组图像序列的时间并不是严格同步的&#xff0c;对运…

稀疏自编码器_自编码(AutoEncoder)模型及几种扩展之二

4. 稀疏自编码假设我们只有一个没有类别标签的训练样本集合{x(1),x(2)...},一个自编码神经网络就是一种非监督学习算法&#xff0c;它使用BP算法&#xff0c;并将目标值设为&#xff1a; y(i)x(i)。我们的目标是希望得到hW,b(X)≈x。用aj(2)(x)表示输入向量x对隐藏层单元j的激活…

linux x86 关机 过程,linux在x86上的中断处理过程(详细)

Linux在x86上的中断处理过程一&#xff1a;引言在Intel的文档中,把中断分为两种。一种是异常,也叫同步同断。一种称之为中断,也叫异常中断。同步中断指的是由CPU控制单元产生,之所以称之为同步,是因为只有一条指令执行完毕后才会发出中断。例如除法运算中,除数为零的时候,就会产…

linux 显卡转码,ffmpeg用GPU转码

8种机械键盘轴体对比本人程序员&#xff0c;要买一个写代码的键盘&#xff0c;请问红轴和茶轴怎么选&#xff1f;有些视频编码太屌&#xff0c;播放起来对CPU消耗巨大&#xff0c;而在电视上或者电视盒子上看视频&#xff0c;编码就需要合适&#xff0c;楼主用的FireTV Stick&a…