求根是数值计算的一个基本问题,一般采用的都是迭代算法求解,主要有不动点迭代法、牛顿-拉富生算法、割线法和二分法。

不动点迭代法

所谓的不动点是指x=f(x)的那些点,而所谓的不懂点迭代法是指将原方程化为x=f(x)形式之后,下一步所用的x值为这一步的f(x),这样的话就可以一直逼近我们需                     要的x,即方程的根,但是这种方法可能不会收敛到方程的根,随着初始值选定的大小,可能会有发散的情况,因此需要谨慎使用。

###不动点迭代法

func1

fixpoint

###求根的函数func

###初始值x0

###允许误差范围tol

###最大循环次数max.iter

x.old

x.new

for(i in 1:max.iter){

x.new

if(abs(x.new - x.old) < tol && i

cat('the iter time is',i,'\n')

return(format(x.new,digits = 9))

}

x.old

}

cat('bad start num')

}

牛顿-拉富生算法

所谓的牛顿-拉富生算法其实就是课本里面说的牛顿迭代法,也不是一个难的程序,主要思想就是x(n+1)=x(n)-f(x(n))/f`(x(n)),因此这种方法需要有求导表达式,限制了使用范围。

###牛顿迭代法

###示例方程

func1

func2

Newton

###牛顿迭代法//

###输入方程式func1

###输入func1的导函数func2

###初始值x0

###误差范围tol

###最大迭代次数

x

for(i in 1:max.iter){

x

if(abs(x0-x) < tol){

cat('iter num is:',i,'\n')

return(x)

}

x0

}

cat('this is a not good start num or the function is bad!')

}

割线法

使用牛顿法的时候 ,需要先得到函数的导函数,但是很多时候都没有导函数的解析表达式,因此可以考虑一种替代导函数的近似,即割线法,使用了一段直线作为函数某一段的近似,具体的数学表达式推导很简单,在此略过,其主要假设是所求点的y值恰好为0,我是用相似比解出来的。

###割线法

###割线法公式:x(n+1)=[f(xn)x(n-1) - x(n)f(x(n-1))] / [f(xn) - f(x(n-1))]

###示例函数

func1

gexian

###割线法需要两个初始值

for(i in 1:max.iter){

x

if(abs(x-x1) < tol){

cat('iter num is:',i,'\n')

return(x)

}

x0

x1

}

cat('this is a not good start num or the function is bad!')

}

二分法

上述的方法均有可能不收敛,并且对函数会有一些额外的要求,一种比较暴力的方法但是适用范围更广的解决办法就是二分法,其思想是如果f(x)连续,那么就一定会存在f(x1)<0,f(x2)>0的情况,根必然在x1和x2之间,之后只要不断逼近根就好了。

###二分法

func1

half_M

###初始x0,x1必须满足f(x0)f(x1) < 0,x0 < x1

for(i in 1:max.iter){

cat(x0," ",x1,"\n")

if(abs(x0-x1) < tol){

cat('iter num:',i,"\n")

return(x0)

}

temp_x

if((func(temp_x)*func(x0)) < 0){

x1

}

else{

x0

}

}

}

说说用C语言求根的那些事儿

C语言--求根:计算机只识别0和1,那么问题来了,作为计算工具如何解决数学问题?其实,计算机是死东西,都是程序员用计算机的的思维去加数学公式计算数学题的.听起来好高端的样子,其实啊,也就那么回事儿, ...

用R语言求置信区间

用R语言求置信区间 用R语言求置信区间是很方便的,而且很灵活,至少我觉得比spss好多了. 如果你要求的只是95%的置信度的话,那么用一个很简单的命令就可以实现了 首先,输入da=c(你的数据,用英文 ...

R语言两种方式求指定日期所在月的天数

R语言两种方式求指定日期所在月的天数 days_monthday

R 语言实现求导

前言 高等数学是每个大学生都要学习的一门数学基础课,同时也可能是考完试后最容易忘记的一门知识.我在学习高数的时候绞尽脑汁,但始终都不知道为何而学.生活和工作基本用不到,就算是在计算机行业和金融行业,能 ...

YTU 2405&colon; C语言习题 牛顿迭代法求根

2405: C语言习题 牛顿迭代法求根 时间限制: 1 Sec  内存限制: 128 MB 提交: 562  解决: 317 题目描述 用牛顿迭代法求根.方程为ax3+bx2+cx+d=0.系数a,b ...

C语言复习---迭代法,牛顿迭代法,二分法求根

一:用迭代法求 x=√a.求平方根的迭代公式为:X(n+1)=(Xn+a/Xn) /2. #define _CRT_SECURE_NO_WARNINGS #include

R语言进阶

一.初学入门:入门者可首选两本,前者从统计角度入手,分高中低三部分由浅入深的讲解了如何用R来实现统 ...

数据分析与R语言

数据结构 创建向量和矩阵 函数c(), length(), mode(), rbind(), cbind() 求平均值,和,连乘,最值,方差,标准差 函数mean(), sum(), min(), m ...

R语言︱基本函数、统计量、常用操作函数

先言:R语言常用界面操作 帮助:help(nnet) = ?nnet =??nnet 清除命令框中所有显示内容:Ctrl+L 清除R空间中内存变量:rm(list=ls()).gc() 获取或者设置当 ...

随机推荐

Nessus的安装(Linux)

Nessus有三种安装方式: 1.源文件安装 源文件安装是最复杂的安装方式,用此方式安装可以修改配置参数. 2.rpm安装 rpm安装比起源文件安装更简单一些,它已经把一些底层的东西写好了,用户只要按 ...

Oracle中的rownum和rowid

http://blog.csdn.net/mitedu/article/details/3584399  rownum http://blog.csdn.net/mitedu/article/deta ...

C&num;教程之打印和打印预览

最近研究一了一下关于PDF打印和打印预览的功能,在此小小的总结记录一下学习过程. 实现打印和打印预览的方法,一般要实现如下的菜单项:打印.打印预览.页面设置. PrintDocument类 Print ...

winfrom获得鼠标的坐标

Point mouse = this.PointToScreen(Control.MousePosition);label1.Text = mouse.X.ToString() + ":&q ...

简单学C——第一天

基本功 一.数据类型: 在C语言中,有数据类型这一说法.为何有这一说法?是因为在现实生活中存在着不同的数据,(例如整数,小数,字符即a b c d , . ; "  之类).由于计算机中所有 ...

MongoDb Windows linux平台环境及主流编程语言驱动安装同时配置mongoDb的远程连接

MongoDB 简介篇Ruiy; MongoDB是一个高性能,开源,无模式的文档型数据库,是当前NoSql数据库中比较热门的一种.它在许多场景下可用于替代传统的关系型数据库或键/值 ...

javascipt &colon; filter

过滤 var List = sizes.filter(function (size) { return size.id == 12; }); sizes = [ {id : 10,,stock:130 ...

clear命令新认识

学习Linux的时候,最先学习的几个命令中有一个就是clear,中文翻译为:清屏. 以前的理解都是按照字面进行解读的,清除屏幕上多余的内容. 但是实际上真的如此么? 原来屏幕是: 运行clear命令: ...

PhoenixFD插件流体模拟——UI布局【Gird】详解

流体网格 本文主要讲解Grid折叠栏中的内容 主要内容 Overview 综述 Parameters 参数 General 普通参数 Example: Scene Scale Example: Gri ...

CSU 1862 The Same Game&lpar;模拟&rpar;

The Same Game [题目链接]The Same Game [题目类型]模拟 &题解: 写这种模拟题要看心态啊,还要有足够的时间,必须仔细读题,一定要写一步,就调试一步. 这题我没想到 ...

r语言x=c(1 0.8),R语言求根相关推荐

  1. js条件语句,用if...else if....else方程ax2+bx+c=0一元二次方程。求根

    if 语句 - 只有当指定条件为 true 时,使用该语句来执行代码 if...else 语句 - 当条件为 true 时执行代码,当条件为 false 时执行其他代码 if...else if... ...

  2. 【武汉理工大学计算机复试刷题】(C语言)动态规划求解0/1背包问题之求最大价值

    文章目录 题目描述 思路分析 代码 运行情况 输入文件 运行结果 发现的问题 题目描述 一个旅行者有一个最多能装M公斤的背包,现在有n件物品,它们的重星分别是W1,W2, - Wn,它们的价值分别为C ...

  3. 0 在c语言中有什么作用,\0在c语言中代表什么?

    "\0"在c语言中代表"字符串结束符"."\0"的ASCII码为"0",也就是空字符:字符串总是以"\0&qu ...

  4. 上海c语言做游戏培训,0基础C语言游戏逆向课程,培训视频+项目实战

    第一部分 1.Visual Studio IDE的安装和基本使用 1.Visual Studio IDE的安装和基本使用 .docx 1.Visual Studio IDE的安装和基本使用 .mp4 ...

  5. 0 17在c语言中什么意思,exit(0)在c语言中是什么意思

    exit(0)在c语言中是什么意思 exit(0)在c语言中是什么意思? exit(0):正常运行程序并退出程序. exit(1):非正常运行导致退出程序: return():返回函数,若在主函数中, ...

  6. c语言 0494-方程求根,C语言:作业一 选择结构.doc

    0014-判断闰年 时间限制: 1000 毫秒 内存限制: 32768 K字节 总提次数: 2159 次 成功提交次数: 1373 次 判题规则: 严格比较 问题描述 判断某年是否是闰年.公历纪年法中 ...

  7. R语言观察日志(part16)--Google‘s R Style Guide

    学习笔记,仅供参考 自翻,有错必究 文章目录 Google's R Style Guide summary R语言风格 R语言规则 符号和命名 文件名 标识符 每行长度(注意) 缩进 空格 花括号 被 ...

  8. R语言学习笔记(一)R语言的基本操作与函数

    文章目录 写在前面 R语言GUI操作 基本的快捷键与命令 帮助命令 R Studio 常用快捷键 R语言基础语法 变量操作 运算符 数据类型 数据类型的判断 向量的基本操作 创建向量(数值类型) 基本 ...

  9. 多元统计分析及R语言建模_自定义函数: msaR.R

    #*********************************************** #****** 多元统计分析及R语言建模(第五版)****** #****** 自定义函数: msaR ...

最新文章

  1. 2021年机器学习什么风向?谷歌大神Quoc Le:把注意力放在MLP上
  2. 【 FPGA 】认识关键BUFFER
  3. CloudStack管理员文档 - 服务方案
  4. VTK:参数化超环形用法实战
  5. 2018-2019年度总结
  6. [转]javascript小技巧,超强推荐
  7. 火眼睛睛查coredump(stl sort)------永远让比较函数对相同元素返回false
  8. python抽取数据库元数据_0797-使用HDP或CDP的Atlas采集CDH6的元数据和血缘
  9. STM8单片机定时器1编码器功能使用详解
  10. Asp.net:DataList分页技术
  11. coc部落冲突关联错误101解决方案
  12. python中变量怎么使用_python中变量怎么使用
  13. ArturiaFX Collection for Mac(音乐效果器合集) 2021最新
  14. 无论PC还是Mac,都能畅快地使用移动硬盘
  15. Atitit 局部图查找大图 方法 与 说明
  16. 十分钟智商运动 李永乐 第2章 奇妙的物理
  17. 网页聊天室php无数据库_无需数据库的PHP聊天室程序
  18. 苹果App Store商店中国区如何改为美国区
  19. postgresql注册表删除_彻底删除SQL Server注册表的方法
  20. Capstone/CS5211低成本替代昆泰CH7511B方案

热门文章

  1. AI 预测世界杯比赛结果,惊掉下巴
  2. Hexadecimal's Numbers 题解
  3. C++ set的应用
  4. Unity多线程学习笔记
  5. 【gitlab-runner】gitlab-runner安装注册到https的gitlab
  6. vba 访问服务器文件,performance
  7. Python之实现自动开启摄像头拍照,后面发送邮寄给个人
  8. Python爬取链家地产二手房信息
  9. scrapy入门:爬取伯乐在线
  10. 自然语言处理在化工的应用