3个回答
展开全部
/*
* 初步判定解-2<x<-1
* 采用二分法近似求解
*/
#include <stdio.h>
#include <math.h>
int main()
{
double left=-2;//初始左值
double right=-1;//初始右值
double mid,sleft;//二分中值,方程左表达式值
do
{
mid=(left+right)/2;//求二分中值
sleft=pow(mid,5)+3*pow(mid,3)+7;//求方程左表达式值
//缩小寻解范围
if(sleft>0)right=mid;
else if(sleft<0)left=mid;
}
while (fabs(sleft)>1e-10);//设定近似程度
//结果输出
printf("x^5+3x^3+7=0\n");
printf("解得x=%.10lf\n",mid);
return 0;
}
* 初步判定解-2<x<-1
* 采用二分法近似求解
*/
#include <stdio.h>
#include <math.h>
int main()
{
double left=-2;//初始左值
double right=-1;//初始右值
double mid,sleft;//二分中值,方程左表达式值
do
{
mid=(left+right)/2;//求二分中值
sleft=pow(mid,5)+3*pow(mid,3)+7;//求方程左表达式值
//缩小寻解范围
if(sleft>0)right=mid;
else if(sleft<0)left=mid;
}
while (fabs(sleft)>1e-10);//设定近似程度
//结果输出
printf("x^5+3x^3+7=0\n");
printf("解得x=%.10lf\n",mid);
return 0;
}
追问
这个只有一个值吗?
展开全部
#include<stdio.h>
#include<math.h>
int main()
{
int x;
scanf("%d",&n);
if(pow(x,5)+3*pow(x,3)+7==0)
printf("%d",x);
return 0;
}
这个程序无法直接求得结果,你输入任意的数,如果有结果,就是解,没有直接退出就不是解。
#include<math.h>
int main()
{
int x;
scanf("%d",&n);
if(pow(x,5)+3*pow(x,3)+7==0)
printf("%d",x);
return 0;
}
这个程序无法直接求得结果,你输入任意的数,如果有结果,就是解,没有直接退出就不是解。
追问
这个根本就行不通!
追答
你在加入牛顿的迭代公式即可。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
还是用matlab吧,关键是不会算法,这是个专业的数学问题啊,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询