當前位置:首頁 » 編程軟體 » 二分法編譯

二分法編譯

發布時間: 2023-03-16 10:35:40

『壹』 一個c++編程問題-二分法求方程的根

//---------------------------------------------------------------------------

#include<iostream>
using namespace std;
double func (const double x);
double findRoot( double first, double last,const double e); /*注意這里,應盯正該是分號而不是冒號*/

int main ()
{
double a,b ,c,root;
cout<<"Input a ";
cin>>a;
cout<<"Input b";
cin>>b;
cout<<"Input c";
cin>>c;
root=findRoot(a,b,c);
cout<<罩則宏"物冊The root is"<<root<<endl;
return 0;
}
double func(const double x)
{
double y;
y=x*(x+5)*(x-1);
return y;
}
double findRoot(double first, double last,const double e)
{
double mid,y0,y1,y2;
mid=(first+last)/2;
while((last-first)>e)
{
y0=func (mid);
y1=func(first);
y2=func(last);
if (y0==0) return mid;
else if(y0*y1<0) last=mid;
else first=mid; /*注意這里*/
mid=(first+last)/2;
}
return mid;
}
//---------------------------------------------------------------------------

『貳』 我的二分法求近似根的用c語言寫的程序代碼,編輯編譯沒有錯誤,沒有警告,但程序運行到循環體就不走了

#include <stdio.h>中寬
#include <math.h>
#define eps 0.0001
double f (double x)
{
double y;
y=x*x*x-x-1;
return(y);
}

main()
{
int i=0;double t;int a,b;
printf("這是一個用二分法求函數近似根的程序(精確度為10^-4)鉛畢!請用戶輸入區間兩個端點a和b的值:\賣激亮n");
scanf("%d,%d",&a,&b);
for(;fabs(b-a)>eps;)
{
t=(a+b)/2;
i++;
if(f(a)*f(t)<0)
a=t;
else
b=t;
}
printf("函數近似根為%.4f\n",t);
printf("二分的次數為%d\n",i);
}
你寫反了

『叄』 c語言編程 二分法解方程

這段代碼是求解方程f(x)=0在區間[-10,10]上的根的數值解。
方法的思想就是:念野一直選取區間中間的數值,如果發弊高沒現中間的函數值與一側函數值租納,異號,那麼說明解在這個更小的區間中,採用eps=1e-5作為區間的極限大小,通過迭代的方法求解這個方程的數值解。

所以了解了上述思想,那麼else if(f(a)*f(c)<0) b=c; 說明的是 f(a)和f(c)異號,那麼使用b=(a+b)/2縮小迭代區間,繼續迭代;同理else a=c;說明f(a)和f(c)同號,那麼使用a(a+b)/2縮小迭代區間,繼續迭代!

『肆』 c++一個二分法的代碼....編譯程序時 會出現這個警告statement has no effect,然後運行之後是空白啊

#include<iostream>
usingnamespacestd;
intfind(int,int[],int);
intmain()
{
inta[]={1,23,32,34,43,54,66,78,80,88,89,90,98};
intcheck=find(43,a,13);
if(check==13)//比較大小是==
{
cout<<"沒有查找到數據 ";
}
else
cout<<"43在數組a中的位置是:"<<check+1<<endl;
return0;
}
intfind(intm,inta[],intn)
{
into=0,h=n-1,i;
while(o<=h)//是o<=h,不是0
{
i=(o+h)/2;
if(a[i]==m)
{
returni;
}
elseif(a[i]<m)
{
o=i+1;//o=i+1
}
elseif(a[i]>m)
h=i-1;//h=i-1
}
returnn;
}

有邏輯問題

『伍』 c語言二分法求根

二分法計算函數f(x)=x*x*x*x+2*x*x*x-x-1;

本程序在turbo c或c++下編譯:

#include "stdio.h"

#include <math.h>

float f(float x)

{float y;

y=x*x*x*x+2*x*x*x-x-1;

return y;

}

void main()

{float a=0,b=0,h,y,x;

int k,n0;

printf("please input qujian a and b");

scanf("%f%f%d",&a,&b,&n0); /*輸入含根區間a,b,循環次數n0 */

for(k=0;k<=n0;k++)

{ x=(a+b)/2;

h=(b-a)/2;

y=f(x);

if(h<10e-6||fabs(y)<10e-6)

{ printf("k=%d,x=%f,y=%f",k,x,y);

break; } /*輸出分半次數k,函數的根x,及x對應的函數值.*/

else

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

b=x;

else a=x;

}

}

}

熱點內容
java返回this 發布:2025-10-20 08:28:16 瀏覽:741
製作腳本網站 發布:2025-10-20 08:17:34 瀏覽:1005
python中的init方法 發布:2025-10-20 08:17:33 瀏覽:710
圖案密碼什麼意思 發布:2025-10-20 08:16:56 瀏覽:874
怎麼清理微信視頻緩存 發布:2025-10-20 08:12:37 瀏覽:773
c語言編譯器怎麼看執行過程 發布:2025-10-20 08:00:32 瀏覽:1120
郵箱如何填寫發信伺服器 發布:2025-10-20 07:45:27 瀏覽:345
shell腳本入門案例 發布:2025-10-20 07:44:45 瀏覽:224
怎麼上傳照片瀏覽上傳 發布:2025-10-20 07:44:03 瀏覽:909
python股票數據獲取 發布:2025-10-20 07:39:44 瀏覽:869