solve函数c语言_数值计算方法编程作业(C语言版)

本文介绍了使用C语言通过二分法和牛顿法解决非线性方程的方法。首先,展示了二分法的实现,包括容许误差输入、二分条件判断及精度检查。接着,简述了牛顿法在求解非线性方程中的应用。二分法因其简单快速的特点,适用于求解单根问题,而牛顿法则是一种更通用的迭代方法。
摘要由CSDN通过智能技术生成

1:

第二章

(1)

二分法求解非线性方程:

#include

#include 

#define f(x) ((x*x-1)*x-1)

void main()

{

float a,b,x,eps;

int k=0;

printf("intput eps\n");/*

容许误差

*/

scanf("%f",&eps);

printf("a,b=\n");

for(;;)

{scanf("%f, %f",&a ,&b);

if(f(a)*f(b)>=0) /*

判断是否符合二分法使用的条件

*/

printf("

二分法不可使用

,

请重新输入

:\n");

else break;

}

do

{

x=(a+b)/2;

k++;

if(f(a)*f(x)<0) /*

如果

f(a)*f(x)<0

,则根在区间的左半部分

*/

b=x;

else if(f(a)*f(x)>0)

/*

否则根在区间的右半部分

*/

a=x;

else break;

}while(fabs(b-a)>eps);/*

判断是否达到精度要求

,

若没有达到

,

继续循环

*/

x=(a+b)/2; /*

取最后的小区间中点作为根的近似值

*/

printf("\n The root is x=%f, k=%d\n",x,k);

}

运行结果:

intput eps

0.00001

a,b=

2,-5

The root is x=1.324721, k=20

Press any key to continue

总结:本题关键在于两个端点的取值和误差的判断,此程序较容易。二分法收敛速度较快,

但缺点是只能求解单根。

(2)

牛顿法求解非线性方程:

#include 

#include 

float f(float x)

/*

定义函数

f(x) */

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值