C语言牛顿迭代法求2x^3-4x^2+3x-6=0在1.5附近的根
#include<stdio.h>#include<math.h>voidmain(){floatb,c,y,y1,root,y2,x;x=1.5;do{b=pow(x,...
#include<stdio.h>
#include<math.h>
void main()
{
float b,c,y,y1,root,y2,x;
x=1.5;
do
{
b=pow(x,3);
c=sqrt(x);
y=b*2-4*c+3*x-6;
y1=6*c-8*x+3;
root=x; ①
x=x-y/y1; ②
y2=root-x;
}
while(fabs(y2)>1e-5);
printf("%f\n",root);
}
编译和链接都通过了,就运行的时候显示溢出(一段英文)。。
当我把1式和2式对调位置后,运行有结果。。但貌似结果不对。。
跪求解脱。。大虾们,帮帮忙吧~~~ 展开
#include<math.h>
void main()
{
float b,c,y,y1,root,y2,x;
x=1.5;
do
{
b=pow(x,3);
c=sqrt(x);
y=b*2-4*c+3*x-6;
y1=6*c-8*x+3;
root=x; ①
x=x-y/y1; ②
y2=root-x;
}
while(fabs(y2)>1e-5);
printf("%f\n",root);
}
编译和链接都通过了,就运行的时候显示溢出(一段英文)。。
当我把1式和2式对调位置后,运行有结果。。但貌似结果不对。。
跪求解脱。。大虾们,帮帮忙吧~~~ 展开
展开全部
#include<stdio.h>
#include<math.h>
float Newton(float a,float b,float c,float d)
{
float x=1,x0,f,f1;
do
{
x0=x;
f=((a*x0+b)*x0+c)*x0+d;
f1=(3*a*x0+2*b)*x0+c;
x=x0-f/f1;
}
while(fabs(x-x0)>=1e-5);
return x;
}
int main()
{
float a,b,c,d;
scanf("%f%f%f%f\n",&a,&b,&c,&d);
printf("%.2fx^3+%.2fx^2+%.2fx+%.2f=0\n",a,b,c,d);
printf("x=%.5f\n",Newton(a,b,c,d));
return 0;
}
我写了一个通用的,键盘输入系数从高次到低次,
你参考一下。
#include<math.h>
float Newton(float a,float b,float c,float d)
{
float x=1,x0,f,f1;
do
{
x0=x;
f=((a*x0+b)*x0+c)*x0+d;
f1=(3*a*x0+2*b)*x0+c;
x=x0-f/f1;
}
while(fabs(x-x0)>=1e-5);
return x;
}
int main()
{
float a,b,c,d;
scanf("%f%f%f%f\n",&a,&b,&c,&d);
printf("%.2fx^3+%.2fx^2+%.2fx+%.2f=0\n",a,b,c,d);
printf("x=%.5f\n",Newton(a,b,c,d));
return 0;
}
我写了一个通用的,键盘输入系数从高次到低次,
你参考一下。
Sievers分析仪
2024-10-13 广告
2024-10-13 广告
是的。传统上,对于符合要求的内毒素检测,最终用户必须从标准内毒素库存瓶中构建至少一式两份三点标准曲线;必须有重复的阴性控制;每个样品和PPC必须一式两份。有了Sievers Eclipse内毒素检测仪,这些步骤可以通过使用预嵌入的内毒素标准...
点击进入详情页
本回答由Sievers分析仪提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询