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

二分法編譯

發布時間: 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;

}

}

}

熱點內容
明日之後如何掃碼登伺服器 發布:2025-07-19 20:36:26 瀏覽:240
ftp搜索引擎工作原理 發布:2025-07-19 20:31:25 瀏覽:370
景物視頻腳本 發布:2025-07-19 20:30:33 瀏覽:179
hadoop查看文件夾 發布:2025-07-19 20:19:12 瀏覽:21
安卓手機的旁白在哪裡 發布:2025-07-19 20:09:40 瀏覽:740
身份證注冊借書卡的密碼是什麼 發布:2025-07-19 19:44:39 瀏覽:75
玩夢幻西遊哪個配置好 發布:2025-07-19 19:44:37 瀏覽:752
php數組大小排序 發布:2025-07-19 19:27:51 瀏覽:647
linux查找並刪除 發布:2025-07-19 19:25:14 瀏覽:935
linux實驗環境 發布:2025-07-19 19:15:09 瀏覽:411