導航:首頁 > 編程語言 > 函數迭代的編程題

函數迭代的編程題

發布時間:2022-12-21 09:14:59

A. 我想問一道編程題: 跪求答案!

float f(float x0)
{
return cos(x0);
}
//OUTPUT:
Fangcheng geng is 0.73881
cosx= 0.73927

B. 編程,編寫函數f(x),用迭代法求x=a的三次方根

主要問題是原程序的 f 函數錯了。double a[1000];的作用域是在f函數內,當函數返回時即釋放,並不能像你想像的那個在下次調用時依然存在。

再者,

for(i=0;i<10000;i++)
{
if (fabs(f(i+1,b)-f(i,b))<1e-4)
break;
}
怎麼能保證這10000次就一定能得到解呢?結束的條件是差<1e-4,直接做循環條件就可以了。

參考程序如下:

#include<stdio.h>
#include<math.h>
doublef(doublea,doublex)//x為上一個近似解
{
x=2.0/3*x+a/(3*x*x);//不能直接寫2/3
returnx;
}
main()
{
doublea,x1,x0;
scanf("%lf",&a);
x1=a/3;//假設初始值
do
{x0=x1;
x1=f(a,x0);
}while(fabs(x1-x0)>1e-4);
printf("%lf ",pow(a,1.0/3));
printf("%lf",x0);
}

C. VB編程,用迭代法編一函數過程f(a),求x=a的1/3次方,就是a的立方根!

Private Sub Command1_Click()
Dim x As Single, x0 As Single, x1 As Single, a As Single
a = Val(InputBox("請輸入一個數a="))
If Abs(a) < 0.000001 Then
x = 0
Else
x0 = a / 2
x1 = (2 / 3 * x0) + a / (3 * x0 ^ 2)
Do While Abs(x1 - x0) > 0.00001
x0 = x1
x1 = (2 / 3 * x0) + a / (3 * x0 ^ 2)
Loop
x = x1
End If
Print a & "的立方根為;"; x
End Sub

D. C語言編程,指針,編寫函數,用牛頓迭代法求方程f(x)=2x3-4x2+3x-6=0在1.5附近的根。請給出運算結果

#include <stdio.h>
#include <math.h>
double root(double (*f)(double),double (*f1)(double), double x,double eps);
double fx(double x){
return 2*x*x*x-4*x*x+3*x-6;
}
double fp(double x){
return 6*x*x-8*x+3;
}
int main()
{
double x=1.5,y,eps=1e-08;
printf("input eps 1e-08\n"); scanf("%lf",&eps);
y = root(fx,fp,x,eps);
printf("%lf\n",y);

return 0;
}
double root(double (*f)(double x),double (*f1)(double x), double x,double eps){
double x0,x1;
x0=x;
while(1){
x1= x0 - (*f)(x0)/ (*f1)(x0);
if (fabs(x1-x0)<eps) break;
x0=x1;
};
return x1;
}

運行與輸出:
input eps 1e-08
1e-08
2.000000

E. C語言用函數迭代法編1!+2!+3+4!+5!的程序

#include<iostream>
usingnamespacestd;
intf(intn)
{
if(n==0)return1;
elsereturnn*f(n-1);
}
intmain()
{
cout<<f(5)+f(4)+f(3)+f(2)+f(1)<<endl;
return0;
}

F. 關於C程序設計語言中printd函數的迭代問題

printd(1)之後列印1,不就退出程序了嗎, ------->printd(1)之後 返回到 printd(12) 裡面 調用 printd(1)的後面 接著執行 printd(12)內未執行完的語句
請時刻注意當前的n值......

G. C語言迭代法

迭代法就是讓方程的解不斷去逼近真實的解。這是一種數值計算方法。思路就是按上面的步驟,只設置兩個x0,x1開始x0代表第一個值,x1代表第二值第一次迭代之後,讓x0=x1,x1=新的值,這樣x0代表第二個值,x1代表第三值以此類推。。。直到誤差滿足要求

H. 計算方法迭代法如何答編程題 方程是這樣的X3-2X2+10X-20=0(字母後面是是冪指數前面是 系數)

#include "math.h"
main()
{ float x0=1.5, e=1e-5, x1;
int n=20, i;
for (i=1; i<=n; i++)
{x1=20.0\(x0*x0-2*x0+10);
if(fabs(x1-x0)<e){printf("x=%f\n k=%d", x1, i);break;}
x0=x1;
if(i>n) printf("die dai shi ");
}
好像有點錯誤

I. 求C語言例題講解:用迭代法求方程x=cos x的根,要求誤差小於10的-6次方

呵呵
你不已經編完了嗎
因為是cos函數 所以要定義成浮點數,這樣更精確,因此賦值也 要賦浮點數,即0.0其實就是零加個小數點使數域更廣,
這段程序的意思是
先對x1賦0
x2用cos(x)賦值
此時要是x1等於x2就是x=cosx,成立輸出,要不成立
,進入while,判斷括弧里的就是判斷誤差。當誤差大於10的-6次方時循環繼續,等小於10的-6次方時結束循環,輸出的就是要求得
循環體的意思是
當滿足判斷條件時
看,開始 -----x1-----------x2----------------------
x1用x2賦值 x1--------------x2
因為開始x2等於cos0即1,此時cos值最大,以後的非零一定小
也就是說x2的值會不斷變小,x1又不斷的用x2賦值,那麼x1也不斷小這樣x1和x2就會不斷靠近,當兩者之間的距離相差小於10的-6次方時就看成相等。滿足要求,我再畫幾個數軸

x1-----------------------x(0)------------------------------------------
x1--------------------x(1)--------------------
x(1)----x【x(1)】
左為變數x1不斷賦值,右為x2不斷賦值

J. MATLAB函數迭代,這個程序怎麼編

p0=1;
v0=2;
%第一次迭代
k(1)=K(P0,V0);
p(1)=p (K(1));
V(1)=v (K(1));
%第2到第100次迭代
for i=2:100%假設迭代100次
k(i)=K(P(i-1),V(i-1));

p(i)=p (K(i));

V(i)=v (K(i));

end
%這樣就可以了,迭代幾次自己改,希望採納

閱讀全文

與函數迭代的編程題相關的資料

熱點內容
dvd光碟存儲漢子演算法 瀏覽:757
蘋果郵件無法連接伺服器地址 瀏覽:963
phpffmpeg轉碼 瀏覽:671
長沙好玩的解壓項目 瀏覽:145
專屬學情分析報告是什麼app 瀏覽:564
php工程部署 瀏覽:833
android全屏透明 瀏覽:737
阿里雲伺服器已開通怎麼辦 瀏覽:803
光遇為什麼登錄時伺服器已滿 瀏覽:302
PDF分析 瀏覽:485
h3c光纖全工半全工設置命令 瀏覽:143
公司法pdf下載 瀏覽:382
linuxmarkdown 瀏覽:350
華為手機怎麼多選文件夾 瀏覽:683
如何取消命令方塊指令 瀏覽:349
風翼app為什麼進不去了 瀏覽:778
im4java壓縮圖片 瀏覽:362
數據查詢網站源碼 瀏覽:150
伊克塞爾文檔怎麼進行加密 瀏覽:892
app轉賬是什麼 瀏覽:163