1. c語言編程:牛頓迭代法求方程的根
程序流程分析:
① 賦值x0=1.5,即迭代初值;
② 用初值x0代入方程中計算此時的f(x0)及f』(x0),程序中用變數f描述方程的值,用fd描述方程求導之後的值;
③ 計算增量d=f/fd;
④ 計算下一個x,x=x0-d;
⑤ 把新產生的x替換x0,為下一次迭代做好准備;
⑥ 若d絕對值大於1e-3,則重復②③④⑤步。
源程序代碼:
#include <math.h>
main()
{
float x,x0,d,f,fd;
x0=0;
do {
f=2*x0*x0*x0-4*x0*x0+3*x0-6;
fd=6*x0*x0-8*x0+3;
d=f/fd;
x=x0-d;
x0=x;
}while(fabs(d)>1e-3);
printf("x=%f\n",x);
}
2. C語言從鍵盤輸入求方程根.
%1f寫錯了——float型時用%f,double型時用%lf。是LF的小寫,你寫成1f了。寫成%1f後被解釋為只接收一個數字的浮點型,即0~9,所以即便是float型,輸入兩位以上數字就要出錯。
3. 求助:用C語言編程解一元四次方程的根
這個得用循環疊代,把右邊的0換成y,畫成方程曲線,先假設解是a,把a代入方程求出一個y值來,然後求出這個點處的切線,記錄切線與x軸的交點,設交點為b,把b代入方程,再求出y值來,再求切線,與x軸交點,再求y值及切線,如此循環,最後求得一個近似解 ,精確度可以自己控制在一個范圍 。
以上是編程思想,具體實現得靠你自己來編了,說白了就是逐次逼近法,應該是研究生階段學的東西吧,像這種方程及超越方程只能求得近似解,保持誤差在一定范圍內就行了。
4. C語言中求方程的根怎樣實現
如圖:
5. c語言編程,求方程的根,在線等,急
使用二分法求解f(x)=x^3-x-1=0在區間(1,2)上的解
(2011-05-12 22:32:32)
轉載▼
標簽:
二分法
區間
函數
方程
求解
計算方法
雜談
分類: C
//使用二分法求解f(x)=x^3-x-1=0在區間(1,2)上的解
#include<iostream.h>
#include<math.h>
const double eps=0.000001; //對於精度的控制
//為方便的代碼的書寫,故編寫此函數,以此求得此函數值
double f(double x)
{
return pow(x,3)-x-1; //當函數發生改變時,修改此處即可
}
//解的具體實現的函數
void solequ(double min,double max,double eps)
{
double temp;
if(f(min)*f(max)<0)//判斷方程在此區間是否有解
{ //有解的情況的求解過程
while(f(max)!=0)
{
temp=(min+max)/2;
if(f(temp)*f(min)<0)
{
max=temp;
if(fabs(f(max)-f(min))<eps)
break;
}
else
{
min=temp;
if(fabs(f(max)-f(min))<eps)
break;
}
}
cout<<"方程的解為: "<<temp<<endl;
}
else //無解的處理
cout<<"此方程在此區間上無解"<<endl;
}
//主函數入口
int main()
{
double min,max,temp;
cout<<"請輸入積分下限: ";
cin>>min;
cout<<"請輸入積分上限: ";
cin>>max;
if(min>max) //對於用戶輸入次序相反的處理
{
temp=max;
max=min;
min=temp;
}
solequ(min,max,eps);
return 0;
}
你參考下這個程序,二分法
6. 用C語言編寫一程序求解一元二次方程的根。
#include<stdio.h>
#include<math.h>
void m(float a,float b,float c)
{
double x1,x2;
x1=(-b+sqrt(b*b-4*a*c))/(2*a);
x2=(-b-sqrt(b*b-4*a*c))/(2*a);
printf("方程的根是%.2lf和%.2lf",x1,x2);
}
void n(float a,float b,float c)
{
double x;
x=(-b)/(2*a);
printf("方程的根為%.2lf",x);
}
void f(float a,float b,float c)
{
printf("方程無實數根\n");
}
main()
{
float a,b,c;
printf("請輸入a,b,c的值\n");
scanf("%f%f%f",&a,&b,&c);
if(b*b-4*a*c>0)
m(a,b,c);
if(b*b-4*a*c==0)
n(a,b,c);
if(b*b-4*a*c<0)
f(a,b,c);
}
7. 如何用C語言編寫一程序求解一元二次方程的根
C語言編寫一程序求解一元二次方程的根:
#include<stdio.h>
#include<math.h>
void m(float a,float b,float c)
{
double x1,x2;
x1=(-b+sqrt(b*b-4*a*c))/(2*a);
x2=(-b-sqrt(b*b-4*a*c))/(2*a);
printf("方程的根是%.2lf和%.2lf",x1,x2);
}
void n(float a,float b,float c)
{
double x;
x=(-b)/(2*a);
printf("方程的根為%.2lf",x);
}
void f(float a,float b,float c)
{
printf("方程無實數根 ");
}
main()
{
float a,b,c;
printf("請輸入a,b,c的值 ");
scanf("%f%f%f",&a,&b,&c);
if(b*b-4*a*c>0)
m(a,b,c);
if(b*b-4*a*c==0)
n(a,b,c);
if(b*b-4*a*c<0)
f(a,b,c);
}
8. 用C語言編程怎麼求一個數的根號
#include<stdio.h>
#include<math.h>
intmain()
{
floata=5,b;
b=sqrt(a);
printf("a的平方根為:%f ",b);
return0;
}