当前位置:首页 » 编程语言 » 牛顿法c语言

牛顿法c语言

发布时间: 2022-05-25 16:27:04

❶ 牛顿迭代法的c语言代码

doublefunc(doublex)//函数{returnx*x*x*x-3*x*x*x+1.5*x*x-4.0;}doublefunc1(doublex)//导函数{return4*x*x*x-9*x*x+3*x;}intNewton(double*x,doubleprecision,intmaxcyc)//迭代次数{doublex1,x0;intk;x0=*x;for(k=0;k<maxcyc;k++){if(func1(x0)==0.0)//若通过初值,函数返回值为0{printf(迭代过程中导数为0! );return0;}x1=x0-func(x0)/func1(x0);//进行牛顿迭代计算if(fabs(x1-x0)<precision||fabs(func(x1))<precision)//达到结束条件{*x=x1;//返回结果return1;}else//未达到结束条件x0=x1;//准备下一次迭代}printf(迭代次数超过预期! );//迭代次数达到,仍没有达到精度return0;}intmain(){doublex,precision;intmaxcyc;printf(输入初始迭代值x0:);scanf(%lf,&x);printf(输入最大迭代次数:);scanf(%d,&maxcyc);printf(迭代要求的精度:);scanf(%lf,&precision);if(Newton(&x,precision,maxcyc)==1)//若函数返回值为1printf(该值附近的根为:%lf ,x);else//若函数返回值为0printf(迭代失败! );getch();return0;}

❷ C语言 用牛顿迭代法求方程的根,并且输出迭代的次数

#include<stdio.h>
#include<math.h>
void main()
{float x1,x0,f,f1;
int i=0;//i就是当前计算的次数
x1=1.5;
do
{i++;
x0=x1;
f=((2*x0-4)*x0+3)*x0-6;
f1=(6*x0-8)*x0+3;
x1=x0-f/f1;
printf("the d%th root is:%5.2f\n",i,x1);
}while(fabs(x1-x0)>=1e-5);
printf("the time is d%\n",i,);
printf("附近的根是:%5.2f\n",x1);

❸ C语言牛顿方法计算平方根

#include<math.h>
main()
{
float x,y,t;
scanf("%f",&x);
y=x/3;
while(1)
{
t=(y+x/y)/2;
if(fabs(t-y)<0.000001) break;
y=t;
}
printf("the square root of %g is %g",x,t);
}

❹ C语言编程中怎样用牛顿迭代法求解方程

#include<stdio.h>
#include<math.h>
int main()
{
float x1,x,f1,f2;static int count=0;
x1=1.5//定义初始值
do
{
x=x1;
f1=x*(2*x*x-4*x+3)-6;
f2=6*x*x-8*x+3;//对函数f1求导
x1=x-f1/f2; count++;
}while(fabs(x1-x)<=1e-5);
printf("%8.7f ",x1); printf("%d ",count);
return 0;
}
//2x3-4x2+3x-6

❺ c语言牛顿迭代法

把两个子函数都写主函数里头吧!你这样写a、b、c、d都没有传参,害我找了半天。
#include<stdio.h>
#include<math.h>
int
a,b,c,d;
//a、b、c、d为系数
void
main()
{
int
k=0;
//计数变量
float
X0,X1,f,f1;
int
a,b,c,d;
printf("提示:函数f(x)=a*x^3+b*x^2+c*x+d\n");
printf("请输入系数:a,b,c,d的值:\n");
scanf("%d%d%d%d",&a,&b,&c,&d);
printf("请输入初始近似值X0:\n");
scanf("%f",&X1);
printf("---------------\n");
printf("敛散情况:\n");
printf("k:\tXk:\n");
printf("k=%d\tX%d=%f\n",k,k,X1);
do
{
k++;
X0=X1;
f=((a*X0+b)*X0+c)*X0+d;
f1=(3*a*X0+2*b)*X0+c;
X1=X0-f/f1;
printf("k=%d\tX%d=%f\n",k,k,X1);
}
while(fabs(X1-X0)
>=0.00001);
printf("--------------------------\n");
printf("迭代的次数为:%d\n",k);
}

❻ 怎样用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. 牛顿迭代法: #include #include #include #define MAXREPT 1000 float f(float x) {return(你的表达式)); } float df(float x) {return(表达式的导数)); } float iterate(float x) {float x1; x1=x-f(x)/df(x); return(x1); } void main() {float x0,x1,eps,d;int k=0; printf("\n please input x0,eps:"); scanf("%f,%f",&x0,&eps); printf("\n k xk\n"); printf(" %d %f\n",k,x0); do {k++; x1=iterate(x0); printf(" %d %f\n",k,x1); d=fabs(x1-x0); x0=x1; } while((d>=eps)&(k http://bbs.zdnet.com.cn ,本贴地址: http://bbs.zdnet.com.cn/viewthread.php?tid=467406 云是风的梦===========================由本人思考作答或搜索整理 搜索部分感谢原来的作者 希望对你有所帮助===========================

记得采纳啊

热点内容
linux查看系统是32位 发布:2025-02-12 23:17:29 浏览:987
从数据库中随机取数据库数据 发布:2025-02-12 23:17:25 浏览:876
ftp下载软件安卓 发布:2025-02-12 23:07:24 浏览:565
c搜索算法 发布:2025-02-12 23:05:47 浏览:860
返回服务器地址 发布:2025-02-12 23:05:45 浏览:179
我的世界推荐在线服务器 发布:2025-02-12 23:00:18 浏览:460
什么是解压目录 发布:2025-02-12 22:49:24 浏览:979
惠普电脑选购要考虑哪些因素配置 发布:2025-02-12 22:43:50 浏览:221
算法导论和算法 发布:2025-02-12 22:43:13 浏览:930
儿童电动车遥控如何配置 发布:2025-02-12 22:37:54 浏览:248