python牛顿法算立方根_牛顿迭代法求解立方根
//计算一个数字的立方根,不使用库函数
//详细描述:
//接口说明
//原型:
//public static double getCubeRoot(double input)
//输入:double 待求解参数
//返回值:double 输入参数的立方根
牛顿迭代法原理:
对于求a的立方根,可以设f(x)=x^3-a,从而转换成求解f(x)=0,即求方程的根。
f(x)展开泰勒公式:f(x)=f(x0)+(x-x0)*f'(x0)=0,得出的x=x0-f(x0)/f'(x0)=g(x0),此时递归调用该式子可以逐步接近于最终结果。
为什么会接近于最终结果?当然,牛顿迭代并不是无条件收敛的。
首先,要保证f'(x0)!=0,这样f(x)=0将等价于x=x-f(x)/f'(x)。而x_k+1=xk-f(xk)/f'(xk)=g(xk),由迭代过程收敛性定理可得abs(g'(xk))<=L<1(具体证明请读者自行查找)。
g'(x*)=f(x*)*f''(x*)/[f'(x)]^2,x*为f(x)的一个根,所以g‘(x*)=0,g''(x*)=f''(x*)/f'(x*)!=0,只要f’‘(x*)!=0,则牛顿迭代法收敛。
#include
#include
#define jingdu 0.0001
double newton_diedai(double a){
double xn,xn_1;
xn=1;
xn_1 = xn-((xn*xn*xn-a)/(3*xn*xn));
while(xn-xn_1>jingdu || xn-xn_1<-jingdu){
xn = xn_1;
xn_1 = xn-((xn*xn*xn-a)/(3*xn*xn));
}
return xn_1;
}
int main(void){
double a;
scanf("%lf", &a);
a = newton_diedai(a);
printf("%.1f", a);
system("pause");
return 0;
}
python牛顿法算立方根_牛顿迭代法求解立方根相关推荐
- python牛顿法解非线性方程组_matlab实现牛顿迭代法求解非线性方程组.pdf
matlab实现牛顿迭代法求解非线性方程组.pdf matlab 实现牛顿迭代法求解非线性方程组实现牛顿迭代法求解非线性方程组 已知非线性方程组如下 3*x1-cosx2*x3-1/20 x12-81 ...
- mysql 立方根函数_Java实现牛顿迭代法求解平方根、立方根
一.简介 牛顿迭代法(Newton's method)又称为牛顿-拉夫逊(拉弗森)方法(Newton-Raphson method),它是牛顿在17世纪提出的一种在实数域和复数域上近似求解方程的方法. ...
- matlab牛顿法解非线性方程组,matlab实现牛顿迭代法求解非线性方程组.pdf
资源描述 matlab 实现牛顿迭代法求解非线性方程组实现牛顿迭代法求解非线性方程组 已知非线性方程组如下 3*x1-cos(x2*x3)-1/2=0 x1^2-81*(x2+0.1)^2+sin(x ...
- 二分法和简单迭代法的优缺点_二分法和牛顿迭代法求解方程的比较.doc
您所在位置:网站首页 > 海量文档  > 高等教育 > 理学 二分法和牛顿迭代法求解方程的比较.doc5页 本文档一共 ...
- 非线性方程组牛顿迭代法matlab,matlab实现牛顿迭代法求解非线性方程组
<matlab实现牛顿迭代法求解非线性方程组>由会员分享,可在线阅读,更多相关<matlab实现牛顿迭代法求解非线性方程组(5页珍藏版)>请在人人文库网上搜索. 1.matla ...
- c语言牛顿迭代法求解非线性方程组,利用牛顿迭代法求解非线性方程组
最近一个哥们,是用牛顿迭代法求解一个四变量方程组的最优解问题,从网上找了代码去改进,但是总会有点不如意的地方,迭代的次数过多,但是却没有提高精度,真是 最近一个哥们,是用牛顿迭代法求解一个四变量方程组 ...
- 3.牛顿迭代法求解方程的根
牛顿迭代法求解方程的根 引题:用牛顿迭代法求下列方程在值等于x附近的根: 2 x 3 − 4 x 2 + 3 x − 6 = 0 2x^3-4x^2+3x-6=0 2x3−4x2+3x−6=0 输入: ...
- 【学习笔记】牛顿迭代法求立方根
[学习笔记]牛顿迭代法求立方根 简介 介绍使用牛顿迭代法求立方根x3{\sqrt[3]{x}}3x的C语言实现和公式的推导. 代码 float CubeRoot(float num) {float ...
- 分别用二分法和牛顿迭代法求解方程x3 – 3x – 1 = 0在x = 2附近的实根
编写程序,分别用二分法和牛顿迭代法求解方程x3 – 3x – 1 = 0在x = 2附近的实根,要求计算精确到小数点后七位数字为止,并将求出的近似结果与理论值2cos20 相比较,二分法的初始迭代区间 ...
最新文章
- gi克隆github文件_如何构建GitHub文件搜索功能的克隆
- oracle加as报错,【Oracle】-【sqlplus / as sysdba登录报错问题】-新用
- iOS中autolaylout和sizeclass的理解
- 《Spark与Hadoop大数据分析》——1.2 大数据科学以及Hadoop和Spark在其中承担的角色...
- python基本输入输出系统_Python的输入输出
- 关于Synchornized,Lock,AtomicBoolean和volatile的区别介绍
- python中类的嵌套_python 中的嵌套类
- win7 html 设置成桌面,教你怎样设置专属自己的windows7动态桌面
- 电机与拖动基础第四版_伺服电机控制
- 思科ASA防火墙升级为云端防火墙
- 两个分数化简比怎么化_分数化简比的方法什么,六年级上求比值与化简比的对比...
- matlab计算方阵对应特征值的特征向量
- oracle数据库path,oracle数据库path
- 今日头条Android适配方案,android 今日头条的屏幕适配理解
- CMD 创建初始化Vue项目
- Android如何自定义服务器DynamicMockServer的使用
- 均方误差——MSE 和标准差 的区别
- 关于电商运营的XMind思维导图
- adb自动化控制手机工具类
- MySQL内部函数介绍