c语言编程~ 解方程
要求:(1)用牛顿法求解下列方程在1.8附近的根。(精确到10^-6);x^3-5x^2+3x+5=0(2)改变初始值、误差后重新求解。...
要求:(1)用牛顿法求解下列方程在1.8附近的根。(精确到10^-6);
x^3-5x^2+3x+5=0
(2)改变初始值、误差后重新求解。 展开
x^3-5x^2+3x+5=0
(2)改变初始值、误差后重新求解。 展开
展开全部
采用C语言编程解方程,有两种情况:
1 简单的方程,比如一元一次方程,或者多元一次方程,以及一元二次方程等,这类数学上有固定的解题方法的,可以在程序中输入参数,并按照数学方法,进行求解。
2 复杂的方程,比如高次方程,或者积分方程等,对于这类问题,在数学上有着自己的解法,但是移植到计算机中操作会比较繁琐,不易于编程实现。所以这类方程在计算机领域中,专门开发了更高效的算法,不适于笔算,但更符合计算机的工作方式。这时需要查找或学习对应算法并实现。
1 简单的方程,比如一元一次方程,或者多元一次方程,以及一元二次方程等,这类数学上有固定的解题方法的,可以在程序中输入参数,并按照数学方法,进行求解。
2 复杂的方程,比如高次方程,或者积分方程等,对于这类问题,在数学上有着自己的解法,但是移植到计算机中操作会比较繁琐,不易于编程实现。所以这类方程在计算机领域中,专门开发了更高效的算法,不适于笔算,但更符合计算机的工作方式。这时需要查找或学习对应算法并实现。
TableDI
2024-07-18 广告
2024-07-18 广告
仅需3步!不写公式自动完成Excel vlookup表格匹配!Excel在线免,vlookup工具,点击16步自动完成表格匹配,无需手写公式,免费使用!...
点击进入详情页
本回答由TableDI提供
展开全部
参照(《c程序设计(第三版)》谭浩强 著)P130 习题6.12
用牛顿迭代法求下面方程在1.5附近的根:
2x^3-4x^2+3x-6=0
答案如下:
#include "stdio.h"
#include<math.h>
void main()
{
double f(double x);
double x1=-10.0,x2=10.0,xx;
while(1)
{
xx=(x1+x2)/2;
if(fabs(f(xx)-0)<1e-5)break;
if(f(xx)>0)x2=xx;
if(f(xx)<0)x1=xx;
}
printf("one foot of x is %f\n",xx);
}
double f(double x)
{
return (2*x*x*x-4*x*x+3*x-6);
}
用牛顿迭代法求下面方程在1.5附近的根:
2x^3-4x^2+3x-6=0
答案如下:
#include "stdio.h"
#include<math.h>
void main()
{
double f(double x);
double x1=-10.0,x2=10.0,xx;
while(1)
{
xx=(x1+x2)/2;
if(fabs(f(xx)-0)<1e-5)break;
if(f(xx)>0)x2=xx;
if(f(xx)<0)x1=xx;
}
printf("one foot of x is %f\n",xx);
}
double f(double x)
{
return (2*x*x*x-4*x*x+3*x-6);
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
参照(《c程序设计(第三版)》谭浩强
著)P130
习题6.12
用牛顿迭代法求下面方程在1.5附近的根:
2x^3-4x^2+3x-6=0
答案如下:
#include
"stdio.h"
#include
void
main()
{
double
f(double
x);
double
x1=-10.0,x2=10.0,xx;
while(1)
{
xx=(x1+x2)/2;
if(fabs(f(xx)-0)<1e-5)break;
if(f(xx)>0)x2=xx;
if(f(xx)<0)x1=xx;
}
printf("one
foot
of
x
is
%f\n",xx);
}
double
f(double
x)
{
return
(2*x*x*x-4*x*x+3*x-6);
}
著)P130
习题6.12
用牛顿迭代法求下面方程在1.5附近的根:
2x^3-4x^2+3x-6=0
答案如下:
#include
"stdio.h"
#include
void
main()
{
double
f(double
x);
double
x1=-10.0,x2=10.0,xx;
while(1)
{
xx=(x1+x2)/2;
if(fabs(f(xx)-0)<1e-5)break;
if(f(xx)>0)x2=xx;
if(f(xx)<0)x1=xx;
}
printf("one
foot
of
x
is
%f\n",xx);
}
double
f(double
x)
{
return
(2*x*x*x-4*x*x+3*x-6);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询