【清橙A1094】【牛顿迭代法】牛顿迭代法求方程的根
牛顿迭代法的原理如下(参考下图):
设xk是方程f(x)=0的精确解x*附近的一个猜测解,过点Pk(xk,f(xk))作f(x)的切线。该切线与x轴的交点比xk更接近方程的精确解程x*。
迭代公式为:xk+1= xk - f(xk)/f '(xk),当f(x)的绝对值足够小的时候即可结束迭代。
注意:对于本题给定函数f(x),f '(x)=3ax2+2bx+c,且当|f(x)| ≤10-7时,即可认为x是f(x)=0的根。
第一行为4个整数,每2个数之间用一个空格隔开,分别是a,b,c,d
第二行为一个实数z。
3
/*
宋代苏轼
《临江仙·夜饮东坡醒复醉》
夜饮东坡醒复醉,归来仿佛三更。家童鼻息已雷鸣。敲门都不应,倚杖听江声。
长恨此身非我有,何时忘却营营。夜阑风静縠纹平。小舟从此逝,江海寄余生。
*/
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <queue>
#include <vector>
#include <iostream>
#include <string>
#include <ctime>
#define LOCAL
const double Pi = acos(-1.0);
const int MAXN = + ;
const double eps = 1e-;
using namespace std;
typedef long long ll;
double f(int a, int b, int c, int d, double x){return a * x * x * x + b * x * x + c * x + d;}
double fd(int a, int b, int c, double x){return * a * x * x + * b * x + c;} int main(){ int a, b, c, d;
double z;
scanf("%d%d%d%d", &a, &b, &c, &d);
scanf("%lf", &z);
int cnt = ;
double x = z;
while (f(a, b, c, d, x) > eps || f(a, b, c, d, x) < -eps){
x = x - f(a, b, c, d, x) / fd(a, b, c, x);
cnt++;
}
printf("%.3lf %d\n", x, cnt);
return ;
}
【清橙A1094】【牛顿迭代法】牛顿迭代法求方程的根的更多相关文章
- C语言之基本算法25—牛顿迭代法求方程近似根
//牛顿迭代法! /* ============================================================ 题目:用牛顿迭代法求解3*x*x*x-2*x*x-16 ...
- C语言之基本算法24—黄金切割法求方程近似根
//黄金切割法! /* ================================================================ 题目:用黄金切割法求解3*x*x*x-2*x* ...
- C语言复习---迭代法,牛顿迭代法,二分法求根
一:用迭代法求 x=√a.求平方根的迭代公式为:X(n+1)=(Xn+a/Xn) /2. #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> ...
- 【Java例题】4.4使用牛顿迭代法求方程的解
4. 使用牛顿迭代法求方程的解:x^3-2x-5=0区间为[2,3]这里的"^"表示乘方. package chapter4; public class demo4 { publi ...
- MATLAB用二分法、不动点迭代法及Newton迭代(切线)法求非线性方程的根
MATLAB用二分法.不动点迭代法及Newton迭代(切线)法求非线性方程的根 作者:凯鲁嘎吉 - 博客园http://www.cnblogs.com/kailugaji/ 一.实验原理 二.实验步骤 ...
- [清橙A1210]光棱坦克
[清橙A1210]光棱坦克 题目大意: 平面上放置了\(n(n\le7000)\)个反射装置,光纤将从某个装置出发,在经过一处装置时发生反射,若经过的装置坐标依次为\((x_1,y_1),(x_2,y ...
- 清橙A1212:剪枝
题面 清橙 Sol 一种新的树上\(DP\)姿势 从左往右按链\(DP\) 做法: 维护两个栈\(S1\),\(S2\) \(S1\)存当前的链 \(S2\)存分叉点以下要改的链 \(Dfs\),弄一 ...
- 清橙A1202&Bzoj2201:彩色圆环
因为Bzoj是权限题,所以可以去清橙做一下 Sol 突然考了一道这样的题,考场上强行\(yy\)出来了 win下评测Long double爆零TAT 首先肯定是破环为链变成序列问题辣 那么就要求第一个 ...
- 清橙A1206.小Z的袜子 && CF 86D(莫队两题)
清橙A1206.小Z的袜子 && CF 86D(莫队两题) 在网上看了一些别人写的关于莫队算法的介绍,我认为,莫队与其说是一种算法,不如说是一种思想,他通过先分块再排序来优化离线查询问 ...
随机推荐
- 有7g和2g的砝码各一个,怎样称可以3次把140g东西分为50g和90g???????
第一次:等分 50和90为 70 70 2. 7g 和2g ,取出一个70中的9g , 61 70 3.利用 9g和2g砝码,取出61中的11克,前面的9 和 11 都放进70
- bzoj 1027 [JSOI2007]合金(计算几何+floyd最小环)
1027: [JSOI2007]合金 Time Limit: 4 Sec Memory Limit: 162 MBSubmit: 2970 Solved: 787[Submit][Status][ ...
- 洛谷P1407 工资
洛谷P1407 工资 本题地址:http://www.luogu.org/problem/show?pid=1407 题目描述 有一家世界级大企业,他们经过调查,发现了一个奇特的现象,竟然在自己的公司 ...
- vim spf13
效果图来一个: http://vim.spf13.com/ 这个网站里面的vim配置非常全,推荐. 下面是对这个vim快捷键总结: <Leader> 是"," 打卡一个 ...
- 使用二维NDRange workgroup
作为初学者一直,经过多次的上网搜索你一定会看到迈克老狼的向量加法的示例,不知道你是否和我一样,刚开始并不是很准确的知道他的add.cl写的代码的意思,源码如下: #pragma OPENCL EXTE ...
- Yii简单的基于角色的访问控制
public function filters() { return array( 'accessControl', // perform access control for CRUD operat ...
- 问题-[WIN764位系统]操作UDL驱动不全处理
http://www-01.ibm.com/support/docview.wss?uid=swg21503768 方法# 1 单击“开始——运行” 输入一个命令类似如下: C:\Win ...
- Java Networking: InetAddress
The InetAddress is Java's representation of an IP address. Instances of this class are used together ...
- nyoj 353 3D dungeon
3D dungeon 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描述 You are trapped in a 3D dungeon and need to find ...
- 学习:Linux基础知识<一>
>>硬盘分区模式 硬盘分区模式一般如下: -- / (根目录) -- /usr (操作系统) --/home (用户信息) -- /var (默认服务器的登录文件,邮件与WW ...