用c语言实现牛顿迭代法 大家并不陌生,借来给大家详细说说吧!
c语言牛顿迭代法
#includestdio.h
#include math.h //包含这个头文件,后面使用fabs
void main()
{
double x=1.5,y,y1;
do
{
y=2*x*x*x-4*x*x+3*x-6;
y1=6*x*x-8*x+3;
x=x-y/y1;
}
while(fabs(y/y1)1e-6);// 是y/y1,不是y
printf(“%f”,x);
}
给你个条理更加 清楚点的程序,你对比看看
#include stdio.h
#include math.h
int main()
{
double x1 = 1.5, x2;
do {
x2 = x1;
x1 = x2 – (2*x1*x1*x1-4*x1*x1+3*x1-6) / (6*x1*x1-8*x1+3);
} while(fabs(x1-x2) 1e-6);
printf(“%f”, x1);
}
求 C语言 牛顿迭代法 程序~~~~~~~~~~~~
给你一点提示。
牛顿迭代法要计算
(1)
y1=f(x)
在
x
的函数值
(2)
d1=f(x)
的一阶导数
在
x
的值
你可以写两个函数,分别计算y1,d1
如果一阶导数有解析解,则可用赋值语句,否则要写数值解子程序。
步骤:
设解的精度,例
float
eps=0.000001;
设x初值,x1;
算y1=f(x1);
迭代循环开始
算一阶导数
在
x1
的值
d1
用牛顿公式
算出
x2;
[x2
=
x1
-
y1
/
d1]
如果
fabs(x2-x1)
eps
则从新迭代
–
用新的函数值和一阶导数值推下一个
新x.
求助用c语言描述牛顿迭代法
//c语言牛顿法求cosx-x=0
//牛顿法的迭代序列:x(n+1)=x(n)-f(x(n))/f(x(n))。
//f(x)=cosx-x;
//f'(x)=-sinx-1;
#includestdio.h
#include math.h
void main()
{
float x,x0,f,f1;
x0=0.5;
while(1)
{
f=cos(x0)-x0;
f1=-sin(x0)-1;
x=x0-f/f1;
if(fabs(x-x0)1e-5) break;
x0=x;
}
printf(“x=%f
”,x); //x=0.7390851
}
以上是嗨壳技术分享网(www.heikehao.com)小编对“ 用c语言实现牛顿迭代法 ”的详细解答,希望能够帮助到大家。
原创文章,作者:语言我知,如若转载,请注明出处:https://www.heikehao.com/809.html