
用迭代法解一个一元三次方程
X*X*X-2*X*X+10*X-20=0X0=1.5ε=10负5次方N=20用TC编程,编程详细步骤给下...
X*X*X-2*X*X+10*X-20=0X0=1.5 ε=10负5次方 N=20用TC编程,编程详细步骤给下
展开
2013-09-18
展开全部
#include <stdio.h>
#include <math.h>
/* 函数*/
double func(double x)
{
return x*x*x-2*x*x+10*x-20.0;
}/* 迭代函数*/
double func1(double x)
{ return 3*x*x-4*x+10;
}/* 迭代函数*/
int Newton(double *x,double precision,int maxcyc)
{
double x1,x0;
int k;
x0=*x;
for(k=0;k<maxcyc;k++)
{
if(func1(x0)==0.0)
{
printf("迭代过程中导数为0 \n");
return 0;
}
x1=x0-func(x0)/func1(x0);
if(fabs(x1-x0)<precision || fabs(func(x1)<precision))
{
*x=x1;
return 1;
}
else x0=x1;
}
printf("迭代次数超过预期\n");
return 0;
}
main()
{
double x=1.5; //x0
double precision=0.00005; // 精度
int maxcyc=20; //迭代次数
if(Newton(&x,precision,maxcyc))
printf("It's %lf",x);
else
printf("false");
}
#include <math.h>
/* 函数*/
double func(double x)
{
return x*x*x-2*x*x+10*x-20.0;
}/* 迭代函数*/
double func1(double x)
{ return 3*x*x-4*x+10;
}/* 迭代函数*/
int Newton(double *x,double precision,int maxcyc)
{
double x1,x0;
int k;
x0=*x;
for(k=0;k<maxcyc;k++)
{
if(func1(x0)==0.0)
{
printf("迭代过程中导数为0 \n");
return 0;
}
x1=x0-func(x0)/func1(x0);
if(fabs(x1-x0)<precision || fabs(func(x1)<precision))
{
*x=x1;
return 1;
}
else x0=x1;
}
printf("迭代次数超过预期\n");
return 0;
}
main()
{
double x=1.5; //x0
double precision=0.00005; // 精度
int maxcyc=20; //迭代次数
if(Newton(&x,precision,maxcyc))
printf("It's %lf",x);
else
printf("false");
}

2023-07-25 广告
短路计算的条件主要包括以下几点:1. 假设系统有无限大的容量,即系统容量无限大。2. 用户处短路后,系统母线电压能维持不变,即计算阻抗比系统阻抗要大得多。3. 在计算高压电器中的短路电流时,只需考虑发电机、变压器、电抗器的电抗,而忽略其电阻...
点击进入详情页
本回答由北京埃德思远电气技术咨询有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询