C++牛顿迭代法求根,用递归方法实现分析及代码
C++牛顿迭代法求根分析及代码
代码函数为y=ax^3+ bx^3+c*x+d
程序结构如上
代码为:
#include <iostream>
#include <cmath>
using namespace std;
double hanshu(int a, int b, int c, int d, double x);
double K(int a, int b, int c, double x);
double qiudian(double a, double b, double k);
double yunsuan(int a, int b, int c, int d, double x);
int main()
{int a, b, c, d, x;double lingd;cout << "输入函数a,b,c,d. 空格隔开" << endl;cin >> a >> b >> c >> d;cout << "输入在X附近的值" << endl;cin >> x;lingd = yunsuan(a, b, c, d, x);cout << "在" << x << "附近的根为:" << lingd << endl;system("pause");
}
double yunsuan(int a, int b, int c, int d, double x) \\运算递归函数
{double y, k, newx, newy;y = hanshu(a, b, c, d, x);k = K(a, b, c, x);newx = qiudian(x, y, k);newy = hanshu(a, b, c, d, newx);newy = abs(newy);if (newy <= 0.0000001) //0.0000001为误差精度{return(newx);}else{return(yunsuan(a, b, c, d, newx));}
}double hanshu(int a, int b, int c, int d, double x) \\输入值,形成,并输入x, 求出函数值。即Y值。
{double i;i = a*x*x*x + b*x*x + c*x + d;return(i);
}
double K(int a, int b, int c, double x) \\求x点对应的切线斜率K。
{double i;i = 3 * a*x*x + 2 * b*x + c;return(i);
}double qiudian(double a, double b, double k) \\求切线与X轴的交点。得到新的x点。
{double i;i = (k*a - b) / k;return(i);}
C++牛顿迭代法求根,用递归方法实现分析及代码相关推荐
- 用c语言编制牛顿法程序,求解试用newton法求函数,YTU 2405: C语言习题 牛顿迭代法求根...
2405: C语言习题 牛顿迭代法求根 时间限制: 1 Sec 内存限制: 128 MB 提交: 562 解决: 317 题目描述 用牛顿迭代法求根.方程为ax3+bx2+cx+d=0.系数a,b ...
- oj第十一周训练——牛顿迭代法求根
问题及代码 Description 用牛顿迭代法求根.方程为ax3+bx2+cx+d=0.系数a,b,c,d的值一次为1,2,3,4,由主函数输入.求x在1附近的一个实根.求出根后由主函数输出.结果保 ...
- 牛顿迭代法求根——C语言
牛顿迭代法求根的原理: 设r是 的根,选取 作为r的初始近似值,过点 做曲线 的切线L,L的方程为 ,求出L与x轴交点的横坐标 ,称x1为r的一次近似值.过点 做曲线 的切线,并求该切线与x轴交点的横 ...
- 【源码】牛顿迭代法求根的matlab实现
牛顿迭代法求根的matlab实现 本篇是在课程学习中自己编程实现的牛顿迭代法计算非线性方程或者超越方程近似根的算法,写一下,后边便于复习和期末课程设计引用. 牛顿迭代法本质上是一种特殊的不动点迭代,只 ...
- 使用牛顿迭代法求根(C)
题目:使用牛顿迭代法求根,方程ax3 + bx2 + cx + d = 0,系数a,b,c,d的值依次是1,2,3,4,由主函数输入,求x在1附近的一个实根.求出主函数输出. #include < ...
- 每日一题--20200428--用牛顿迭代法求根,c语言实现
用牛顿迭代法求根.方程为ax^3 +bx^2+cx+d=0,系数a.b.c.d由主函数输入,求x在1附近的一个实根.求出根后,由主函数输出. #include <stdio.h>#incl ...
- C语言用牛顿迭代法求根_可方便修改系数
以y=a^3*x+b^2*x+c*x+d+sin(e)为例: //用牛顿迭代法求方程的根 #include<stdio.h> #include<math.h> double a ...
- C语言---牛顿迭代法求根
用牛顿迭代法求下面方程在1.5附近的根:2x3-4x2+3x+6=0 先定义一个x0,通过x0找出f(x0),做f(x0)的切线,切线的交点为x1,tanx=f(x0)/x1-x0;然而切线在函数中就 ...
- 使用牛顿迭代法求根 一元三次方程的根
牛顿迭代法(Newton's method)又称为牛顿-拉夫逊方法(Newton-Raphson method),它是牛顿在17 世纪提出的一种在实数域和复数域上近似求解方程的方法.多数方程不存在求根 ...
最新文章
- 任务调度算法题Java_一个任务调度问题-----算法导论
- 【组队学习】【29期】7. 集成学习(上)
- 前端基础---HTML
- [教程]JS从糊涂到明白:一步一步编写计算器3 – 功能扩展
- 慧鱼机器人编程语言的特点_慧鱼机器人课程设计报告.doc
- 数学史思维导图_【学科活动】思维导图展风采,数学文化提素养——庆云县第四中学(北校区)四年级数学组活动小记...
- ECSHOP如何增加红包序列号字符
- 大一计算机论文_大一计算机论文发表.doc
- 对存储还搞不清楚,先看看这篇文章-从51单片机上去理解存储器
- 配置信息的优化,类型转换器
- java 蓝桥杯算法训练 sign函数
- php自动include,PHP include_php
- 锚点链接页面元素定位(JQuery)
- 深度学习——分类网络的总结(持续更新ing~)
- Win10 LSTC与Ubuntu18.04LTS双系统安装详细流程
- 个人微信支付宝接入GOGO支付免签系统详细教程(图文)
- NASA官网信息导航(愚见)
- Pycharm 一键加引号,快速加引号,批量加引号
- 概率函数P(x)、概率分布函数F(x)与概率密度函数f(x)的区别
- esp8266_arduino源码