一道計算機fortran95的程式設計題按泰勒展開求

2022-03-03 21:37:29 字數 1463 閱讀 2920

1樓:匿名使用者

subroutine cf(n,a) !計算n!的子程式

integer i,n

a=1do i=1,n

a=a*i

end do

end subroutine

program main !b為精度,即誤差不越過b

integer i,c

real::x,b

read(*,*)x,b

i=1call cf(i,a) !a為i! 誤差判斷時用到, 誤差=/x/**(n+1)/(n+1)!

if(abs(x)>=1) then !如果x>=1,取的項數越多誤差越大,故只取sinx=x,不然不能判別什麼時候停止迴圈,

s=xelse !如果x<1,用泰勒公式近似才有意思,

do while((abs(x))**(i+1)/a>=b) 誤差=/x/**(n+1)/(n+1)!隨著i增加即項數增加,越來越小,所以當誤差小於b時即可以停止迴圈,達到要求精度

i=i+1

call cf(i+1,a)

end do

c=i i因為下面的迴圈變數有i,所以這裡再用一變數c來代替n的最大值i

s=0 !求和sinx=x-x**3/3!+x**5/5!+...+(-1)**(n-1)*(x**(2n-1))/(2n-1)! c即為n的最大值,

do i=1,c,2 ! i每次加2即n每次加2

call cf(i,a)

s=s+(-1)**(i-1)*(x**(2*i-1))/a

end do

endif

write(*,*)s

end program main

試試吧,我試過可以用的,一定要給我點分啊,我可是一下午沒有研究我的**啊,謝謝哦,

祝你好運

2樓:匿名使用者

program main4

real *8 x,f

read(*,*) x

sinx=0.d0

do 10,i=1,1000

f=real(x**(2*i-1)*((-1)**(i+1)))/(2*i-1)

if( abs(f).gt.1e-6 ) thensinx=sinx + f

else

goto 20

endif

10 continue

20 write(*,*) sinx,iend

各位大佬,我用c++打的sinx 泰勒公式 但是輸入什麼值就輸出什麼值, **如下 求解

3樓:匿名使用者

while (fabs(sinx)<1.0e-5);要改為:

while (fabs(sinx)>1.0e-5);

c語言 根據泰勒公式求sinx的近似值

計算機求答案,做一道計算機題(求答案,謝謝,謝謝!)

這其實就是石油大學的計算機基礎課 目測石油大學2012級。真給力!哥們,你贏了。你把我們考試範圍直接發來了。石油大學的吧?啊哈哈哈哈哈 對不起,沒時間幫你做作業。童鞋你太強大了!i fule you 你沒毛病吧?你把每章的習題拿過來求解?直接從網上下課後答案吶!你這幾十個問題沒有一千分我告訴你根本就...

求助 計算機一級考試的一道excel的函式題目

g3 if e3 高工 2000,if e3 工程師 1500,if e3 助工 1000,0 往下拉即可。h3 f3 g3或h3 sum f3 g3 往下拉。a 題目 g3 if e1 高工 2000,if e1 工程師 1500,1000 下拉填充 因為裡面只有 高工,工程師,助工 3種 所以不...

急急急!!一道高中英語選擇題,急急急!!!!一道計算機的選擇題!

答案 b.翻譯 意譯 這種產品極為暢銷,但是沒有人能想象到幾年前它在市場上所充當的 慘淡 角色。解釋 1.後句中no one是主語,謂語是could imagine,賓語是the part。而it in the market several years ago是定語從句,修飾句中賓語the part...