solve函数c语言_数值计算方法编程作业(C语言版)汇总
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("
二分法不可使用
,
請(qǐng)重新輸入
:\n");
else?break;
}
do
{
x=(a+b)/2;
k++;
if(f(a)*f(x)<0)?/*
如果
f(a)*f(x)<0
,則根在區(qū)間的左半部分
*/
b=x;
else?if(f(a)*f(x)>0)
/*
否則根在區(qū)間的右半部分
*/
a=x;
else?break;
}while(fabs(b-a)>eps);/*
判斷是否達(dá)到精度要求
,
若沒(méi)有達(dá)到
,
繼續(xù)循環(huán)
*/
x=(a+b)/2;?/*
取最后的小區(qū)間中點(diǎn)作為根的近似值
*/
printf("\n?The?root?is?x=%f,?k=%d\n",x,k);
}
運(yùn)行結(jié)果:
intput?eps
0.00001
a,b=
2,-5
The?root?is?x=1.324721,?k=20
Press?any?key?to?continue
總結(jié):本題關(guān)鍵在于兩個(gè)端點(diǎn)的取值和誤差的判斷,此程序較容易。二分法收斂速度較快,
但缺點(diǎn)是只能求解單根。
(2)
牛頓法求解非線性方程:
#include?
#include?
float?f(float?x)
/*
定義函數(shù)
f(x)?*/
總結(jié)
以上是生活随笔為你收集整理的solve函数c语言_数值计算方法编程作业(C语言版)汇总的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: ds1302模块 树莓派_(16)给树莓
- 下一篇: spring 获取cookies_spr