解方程的一点心得
计算的方程解法有别于数学
数学能对点的计算,而计算机只能列举后判断
常用的求方程解的方法
- 在某范围内用二分法
如
#include<stdio.h>
#include<limits.h>
#include<math.h>
#define MIN 1e-9
int main()
{
double temp,high=100,low=0,mid;
int y;
scanf("%d",&y);
while(high > low)
{
mid=(high + low)*1.0/2;
temp=8*mid*mid*mid*mid+7*mid*mid*mid+2*mid*mid+3*mid+6;
if(temp == y)
{
printf("x = %.4lf",mid);
return 0;
}
else if(temp > y)
high=mid;
else low=mid;
}
printf("No solution!");
return 0;
}
在二分法中通常要用到high low mid 这三个变量
- 牛顿-拉夫逊方法
如 参考见 https://blog.csdn.net/sinat_42424364/article/details/82381039
#include<stdio.h>
#include<math.h>
#define MIN 1e-6
int main()
{
double x=50,result=-100;
int y;
scanf("%d",&y);
while(fabs(result-y) > MIN)
{
x=x-(8*x*x*x*x+7*x*x*x+2*x*x+3*x+6-y)/(32*x*x*x+21*x*x+4*x+3);
result=8*x*x*x*x+7*x*x*x+2*x*x+3*x+6;
}
if(x >= 0 && x <= 100) printf("x = %.4lf",x);
else printf("No solution!");
return 0;
}
结果证明:牛顿-拉夫逊方法比二分法的逼近速度更快
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现