c語言進退法求函數(shù) c語言進1法

急求C語言用1進退法2二分法3黃金分割法4牛頓切線法5綜合法這五種方法的NS圖和程序,簡單就好,急!

#includestdio.h

芒康網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián),芒康網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為芒康1000+提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)要多少錢,請找那個售后服務(wù)好的芒康做網(wǎng)站的公司定做!

#includemath.h

void main()

{

void function1();//搜索法

void function2();//二分法

void function4();//牛頓法

int choice;

printf("請選擇求解的方法:\n\t1.搜索法\n\t2.二分法\n\t3.牛頓法\n:");

switch(1)

{

case 1: function1();

case 2: function2();

case 4: function4();

}

}

void function1()//搜索法計算非線性方程的解

{

double expression1(double);

double lpoint=1.0,rpoint=2.0,step=0.0001;

while(expression1(lpoint)-0.00001)

{

lpoint=lpoint+step;

}

printf("運用搜索法所求結(jié)果:%f\n",lpoint);

}

void function2()//二分法計算非線性方程的解

{

double expression1(double);

double lpoint=1,rpoint=2,mpoint;

mpoint=(lpoint+rpoint)/2;

while(fabs(expression1(mpoint))0.00001)

{

mpoint=(lpoint+rpoint)/2;

if(expression1(lpoint)*expression1(mpoint)0)

rpoint=mpoint;

else

lpoint=mpoint;

}

printf("運用二分法所求結(jié)果:%f\n",mpoint);

}

void function4()//牛頓法計算非線性方程的解

{

double expression1(double);

double expression2(double);

double x=1.5;

while(expression1(x)0.00001)

{

x=x-expression1(x)/expression2(x);

}

printf("運用牛頓法所求結(jié)果:%f\n",x);

}

double expression1(double x)

{

double result;

result=x*x*x-x*x-1;

return result;

}

double expression2(double x)

{

double result;

result=3*x*x-2*x;

return result;

編程你們來看下啊2X^2-2X+1用C語言編出來,最好用MATLAB搞出來還有分加的

把以下程序存為f618.m,再運行[x,min]=F618(0.2,0,1)

得到:x=1,min=0

function

[x,min]=F618(precision,t0,h)

%初始區(qū)間為a,b,相對精度precision

即為原區(qū)間的多少分之,t0為初始值,h為步長

%用進退法得到高低高區(qū)間,在用0.618法求最值

%precision=0.2;

%t0=0;

%h=1;

[a,b]=Fpush(t0,h);

An=a;

Bn=b;

n=1;

while

0.618^(n-1)=precision

A=0.618.*(An-Bn)+Bn;

B=0.618.*(Bn-An)+An;

if

AB

if

F618Ret(A)F618Ret(B)

Bn=B;

else

An=A;

end

else

if

F618Ret(A)F618Ret(B)

An=A;

else

Bn=B;

end

end

n=n+1;

end

x=An;

min=F618Ret(An);

%=======================================

function

y=F618Ret(x)

%函數(shù)為f(x)=t^2-10*t+36

嚴格凸函數(shù)

y=x.^2-2*x+2;

%======================================

function

[x1,x2]=Fpush(t0,h)

%進退法,調(diào)用函數(shù)為,F618Ret,t0為初始值,h為步長

a=t0;

b=t0+h;

while

1

if

F618Ret(a)F618Ret(b)

h=0-h;

a=a+h;

b=a-h;

if

F618Ret(b)F618Ret(b-h)

F618(b)F618Ret(a)

break;

end

else

a=b;

b=a+h;

if

F618Ret(a)F618Ret(b)

F618Ret(a)F618Ret(a-h)

break;

end

end

end

x1=a;

x2=b;

用進退法確定函數(shù)f(x)=x^2-3x+10的一優(yōu)化搜索區(qū)間[a,b]. 用C語言和MATLAB分別編一段程序

;sc=webch=w.hgid=cin=num=10lr=htn=8bs=%CD%FA%B5%C0%D3%C5%BB%AF%C8%ED%BC%FE

用C語言來編進退法的搜索區(qū)間

用C語言來編進退法的搜索區(qū)間的源代碼如下:

#includestdio.h

void main()

{

int a[20],x,i,start,end;

printf("input 20 numbers:\n");

for(i=0;i20;i++) scanf("%d",a[i]);

printf("please enter the number:\n");

scanf("%d",x);

for(start=0,end=19;start=end;)

{

i=start+(end-start)/2;

if (x==a[i])

{

printf("%d",i+1);

getch();

return;

}

else if (xa[i]) end = i-1;

else start=i+1;

}

擴展資料

1、C語言查找是在大量的信息中尋找一個特定的信息元素,在計算機應(yīng)用中,查找是常用的基本運算,例如編譯程序中符號表的查找。

2、其實二分查找、插值查找以及斐波那契查找都可以歸為一類——插值查找。插值查找和斐波那契查找是在二分查找的基礎(chǔ)上的優(yōu)化查找算法。

網(wǎng)站欄目:c語言進退法求函數(shù) c語言進1法
文章源于:http://muchs.cn/article16/doshhdg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、網(wǎng)站建設(shè)、小程序開發(fā)、做網(wǎng)站網(wǎng)站營銷、企業(yè)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)