
如何编程解一元三次方程
1个回答
展开全部
(1)取两个不同的点x1,x2,如果f(x1)和f(x2)符号相反,则(x1,x2)区间内必有一个根。如果f(x1)和f(x2)同符号,则应改变x1,x2,直到f(x1)和f(x2)异号为止。注意x1和x2的值不应差太大,以保证(x1,x2)区间内只有一根。
(2)连接(x1,f(x1))和(x2,f(x2))两点,此线交x轴于x,x的坐标可以用下式求出:x=(x1*f(x2)-x2*f(x1))/f(x2)-f(x1),
再从x求出f(x);
(3)若f(x)和f(x1)同符号,则根必在(x,x2)内,此时将x作为新的x1;如果f(x)和f(x2)同符号,则表示根在(x1,x),此时将x作为新的x2。
(4)重复步骤(2)和(3),知道|f(x)|<e,e是一个很小的数,例如10^-6;
程序如下:
#include<stdio.h>
#include<math.h>
float f(float x)
{
float y;
y=((x-5.0)*x+16.0)*x-80.0;
return y;
}
float xpoint(float x1,float x2)
{//求(x1,f(x1)和(x2,f(x2))连线与x轴的交点
float y;
y=(x1*f(x2)-x2*f(x1))/(f(x2)-f(x1));
return y;
}//xpoint函数
float root(float x1,float x2)
{
float x,y,y1;
y1=f(x1);
do
{
(2)连接(x1,f(x1))和(x2,f(x2))两点,此线交x轴于x,x的坐标可以用下式求出:x=(x1*f(x2)-x2*f(x1))/f(x2)-f(x1),
再从x求出f(x);
(3)若f(x)和f(x1)同符号,则根必在(x,x2)内,此时将x作为新的x1;如果f(x)和f(x2)同符号,则表示根在(x1,x),此时将x作为新的x2。
(4)重复步骤(2)和(3),知道|f(x)|<e,e是一个很小的数,例如10^-6;
程序如下:
#include<stdio.h>
#include<math.h>
float f(float x)
{
float y;
y=((x-5.0)*x+16.0)*x-80.0;
return y;
}
float xpoint(float x1,float x2)
{//求(x1,f(x1)和(x2,f(x2))连线与x轴的交点
float y;
y=(x1*f(x2)-x2*f(x1))/(f(x2)-f(x1));
return y;
}//xpoint函数
float root(float x1,float x2)
{
float x,y,y1;
y1=f(x1);
do
{

2021-11-22 广告
假设条件在短路的实际计算中, 为了能在准确范围内迅速地计算短路电流, 通常采取以下简化假设。(1)不考虑发电机的摇摆现象。(2)不考虑磁路饱和,认为短路回路各元件的电抗为常数。(3)不考虑线路对地电容, 变压器的磁支路和高压电网中的电阻, ...
点击进入详情页
本回答由北京埃德思远电气技术咨询有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询