方程的計算機處理92-2_Fortran

2021-03-06 蜘蛛網計算機語言

計算機語言運用--數值計算9-方程的計算機處理92-2_Fortran

數值計算

方程的計算機處理

這裡說的方程,是以實數域為計算範圍。

這裡說的方程:是含有未知數的等式。

可以是a+5=8,或X+A=B,或ax2+bx+c=0,或ax+by=c與dx-ey=f,或ax"+bx=c,或

,或

……、……

計算機如何處理這些問題呢?,問題的描述是什麼樣子的,才能充分利用計算機呢?

當然是代數形式的。便於計算機發揮特長,便於程序軟體的重用性。通過用戶交互,決定將什麼樣的具體問題交給計算機進行數值處理。

方程的計算機處理:

MATLAB語言及其平臺、

Fortran  語言及其平臺

先來看一下最簡單的,再逐級複雜,以便體會程序編寫、方程的手工預處理及其人機互動。

按照自然習慣,應該該是……是這樣

按照計算機習慣,在Fortran中是這樣(換一個想法—符合計算機的處理模式

對於問題方程a+5=8,在計算機中運行,需要改造為:

a=8-5

X+a=b型的方程也需要進行改造:

成為----X=b-a的樣式;

計算機是進行數值計算的好幫手,因此需要對a,b預先賦值,再進行計算;

那麼對於一元二次方程呢?也是如此。當然,最好是用求解方程的兩個根的公式來進行處理—也就是,用它們作為計算機語言描述的基礎。當然,需要計算機語言描述判別開平方中的虛數—複數根的問題。這樣,便有了方程處理的前期工作,手工處理。

有數學家推導的求根公式可以直接利用 

由於負數的開平方問題,需要判斷b2-4ac=(>0兩個不相等的實根;=0兩個相等的實根;<0兩個不相等的共軛複數根;三種情況)

接下來是說:Fortran是編譯型語言,因此需要將所做工作用計算機語言編製程序,再交給計算機來處理。作為靜態數據的模式,與MATLAB不同,需要對計算的數據—數值或代數預先聲明變量,以便申請到內存來放置。

可以用Fortran語言編寫為文件形式,接著編譯成*.exe文件,再運行—人機互動。

程序文件

!一元二次方程--quadratic equation

program QuadraticEquation

implicit none

! Variables

integer j,N

REAL a,b,c

REAL  q1,x1,x2,x11,x12

character name_out*10

! Body of QuadraticEquation

!input data

PRINT*,"請輸入想要計算方程的個數,N"

READ*,N

DO j=1,N,1

PRINT*,"請輸入一元二次方程的係數,用空格分開"

READ*,a,b,c

!data processing

q1=b*b-4*a*c

IF(q1>0)THEN  

x1=(-b+sqrt(q1))/(2*a);

x2=(-b-sqrt(q1))/(2*a);

PRINT*,"蜘蛛網計算機語言的計算結果為,兩個不相等的實根:"

PRINT*,'x1=',x1

PRINT*,'x2=',x2

PRINT*,"蜘蛛網計算機語言--計算完畢"

ELSE 

if(q1==0) then

x1=(-b)/(2*a);

x2=(-b)/(2*a);

PRINT*,"蜘蛛網計算機語言的計算結果為,兩個相等的實根:"

PRINT*,'x1=x2=',x1

PRINT*,'x2=x1=',x2

PRINT*,"蜘蛛網計算機語言--計算完畢"

else     

PRINT*,"方程有一對共軛複數根"

x11=sqrt(-q1)/(2*a);

x12=-sqrt(-q1)/(2*a);

PRINT*,'x1=',-b/(2*a),'+i',x11

PRINT*,'x2=',-b/(2*a),'+i',x12

PRINT*,"蜘蛛網計算機語言--計算完畢,請核對!"

end if

ENDIF

!save result

if(q1>=0) then

PRINT*,"輸入保存的文件名:*.txt"

read *, name_out

OPEN(2,FILE=name_out)

WRITE(2,*) "鍵盤讀入數據 :"

WRITE(2,30) a,b,c

WRITE(2,*) "方程求解結果,兩個實根 :"

WRITE(2,60) x1,x2

 30 FORMAT(<3>F6.2)

 60 FORMAT(<2>F6.2)

CLOSE(2)

else

PRINT*,"輸入保存的文件名:*.txt"

read *, name_out

OPEN(2,FILE=name_out)

WRITE(2,*) "鍵盤讀入數據 :"

WRITE(2,10) a,b,c

WRITE(2,*) "方程求解結果,一對共軛複數根 :"

WRITE(2,*) 'x1=',-b/(2*a),'+i',x11

WRITE(2,*) 'x2=',-b/(2*a),'+i',x12

 10 FORMAT(<3>F6.2)

end if

CLOSE(2)

PRINT*,"蜘蛛網計算機語言提請注意:"

PRINT*,"需要計算請重新運行程序。"

ENDDO

end program QuadraticEquation

求解過程

請輸入想要計算方程的個數,N

3

 請輸入一元二次方程的係數,用空格分開

2 4 8

 方程有一對共軛複數根

 x1=  -1.000000     +i   1.732051

 x2=  -1.000000     +i  -1.732051

 蜘蛛網計算機語言--計算完畢,請核對!

 輸入保存的文件名:*.txt

1.txt

 蜘蛛網計算機語言提請注意:

 需要計算請重新運行程序。

 請輸入一元二次方程的係數,用空格分開

3 12 5

 蜘蛛網計算機語言的計算結果為,兩個不相等的實根:

 x1= -0.4724748

 x2=  -3.527525

 蜘蛛網計算機語言--計算完畢

 輸入保存的文件名:*.txt

2.txt

 蜘蛛網計算機語言提請注意:

 需要計算請重新運行程序。

 請輸入一元二次方程的係數,用空格分開

1 -2 1

 蜘蛛網計算機語言的計算結果為,兩個相等的實根:

 x1=x2=   1.000000

 x2=x1=   1.000000

 蜘蛛網計算機語言--計算完畢

 輸入保存的文件名:*.txt

3.txt

 蜘蛛網計算機語言提請注意:

 需要計算請重新運行程序。

Press any key to continue

求解結果

咱不是要說明實際數學問題怎麼變成計算機處理嗎!就是數學方程的預先處理問題、計算機語言描述問題嘛。

在C、C++、C#、Fortran等語言中,你能看到複數的處理問題與描述。

相關焦點

  • 方程的計算機處理92-4_Fortran
    計算機語言運用--數值計算9-方程的計算機處理92-4_Fortran數值計算方程的計算機處理這裡說的方程
  • 方程的計算機處理92-3_Fortran
    數值計算方程的計算機處理這裡說的方程,是以實數域為計算範圍。這裡說的方程:是含有未知數的等式。
  • 方程的計算機處理91-2_Matlab
    計算機語言運用--數值計算9-方程的計算機處理91-2_Matlab計算機:電子線路組成的計算機器。
  • 方程的計算機處理93(2)_Cv6
    計算機語言運用--數值計算9-方程的計算機處理93(2)_Cv6計算機:電子線路組成的計算機器。
  • 方程的計算機處理94(2)_Cvs
    計算機語言運用--數值計算9-方程的計算機處理94(2)_Cvs計算機:電子線路組成的計算機器。
  • 方程的計算機處理94(1)_Cvs
    自從有了數字計算的計算機器,幾乎所有的可以交給計算機的事情,都交給計算機來處理—是輔助處理—按照人們的要求—事先安排的模式進行處理。>自然數的計算、整數的計算、實數的計算、複數的計算、矢量-向量的計算、矩陣的計算、函數的計算、代數方程的計算、函數方程的計算、微分的計算、積分的計算、常微分-一元微分方程的計算、偏微分-多元微分方程的計算、連續數量的計算、離散數量的計算、集合的計算、組合數學的計算、……、……或者說:科學與工程技術應用中的數值計算、……、……方程的計算機處理這裡說的方程,是以實數域為計算範圍
  • 方程的計算機處理93(3)_Cv6
    人與計算機則是通過計算機語言-符號系統說給計算機聽而交流。計算機語言有低級語言-機器語言、彙編、高級語言-C/C++/C#/VB/PASCAL/LISP/JAVA/PYTHON/……成百上千種之多。作為一種計算機器—可以協助人類處理各種事情—數值計算問題、文字處理問題、圖形圖像處理問題、事務問題……。
  • 方程的計算機處理94(5)_Cvs
    人與計算機則是通過計算機語言-符號系統說給計算機聽而交流。計算機語言有低級語言-機器語言、彙編、高級語言-C/C++/C#/VB/PASCAL/LISP/JAVA/PYTHON/……成百上千種之多。作為一種計算機器—可以協助人類處理各種事情—數值計算問題、文字處理問題、圖形圖像處理問題、事務問題……。
  • 方程的計算機處理96(5)_C++vs
    自從有了數字計算的計算機器,幾乎所有的可以交給計算機的事情,都交給計算機來處理—是輔助處理—按照人們的要求—事先安排的模式進行處理。當然,最好是用求解方程的公式來進行處理—也就是,用它們作為計算機語言描述的基礎。當然,需要計算機語言描述判別分母為零。這樣,便有了方程處理的前期工作,手工處理。
  • 方程的計算機處理95(5)_C++v6
    自從有了數字計算的計算機器,幾乎所有的可以交給計算機的事情,都交給計算機來處理—是輔助處理—按照人們的要求—事先安排的模式進行處理。當然,最好是用求解方程的兩個解的公式來進行處理—也就是,用它們作為計算機語言描述的基礎。當然,需要計算機語言描述判別分母為零。這樣,便有了方程處理的前期工作,手工處理。
  • 方程的計算機處理96(3)_C++vs
    自從有了數字計算的計算機器,幾乎所有的可以交給計算機的事情,都交給計算機來處理—是輔助處理—按照人們的要求—事先安排的模式進行處理。當然,最好是用求解方程的兩個解的公式來進行處理—也就是,用它們作為計算機語言描述的基礎。當然,需要計算機語言描述判別分母為零。這樣,便有了方程處理的前期工作,手工處理。
  • 方程的計算機處理914(5) _python-3
    自從有了數字計算的計算機器,幾乎所有的可以交給計算機的事情,都交給計算機來處理—是輔助處理—按照人們的要求—事先安排的模式進行處理。>自然數的計算、整數的計算、實數的計算、複數的計算、矢量-向量的計算、矩陣的計算、函數的計算、代數方程的計算、函數方程的計算、微分的計算、積分的計算、常微分-一元微分方程的計算、偏微分-多元微分方程的計算、連續數量的計算、離散數量的計算、集合的計算、組合數學的計算、……、……或者說:科學與工程技術應用中的數值計算、……、……方程的計算機處理這裡說的方程,是以實數域為計算範圍
  • 方程的計算機處理95(1)_C++v6
    >自然數的計算、整數的計算、實數的計算、複數的計算、矢量-向量的計算、矩陣的計算、函數的計算、代數方程的計算、函數方程的計算、微分的計算、積分的計算、常微分-一元微分方程的計算、偏微分-多元微分方程的計算、連續數量的計算、離散數量的計算、集合的計算、組合數學的計算、……、……或者說:科學與工程技術應用中的數值計算、……、……方程的計算機處理這裡說的方程,是以實數域為計算範圍
  • 方程的計算機處理96(1)_C++vs
    計算機語言運用--數值計算9-方程的計算機處理96(1)_C++vs計算機:電子線路組成的計算機器。
  • 方程的計算機處理914(1)_python-3
    計算機語言運用--數值計算9-方程的計算機處理914(1)_python-3計算機:電子線路組成的計算機器。
  • 方程的計算機處理93(1)_Cv6​
    自從有了數字計算的計算機器,幾乎所有的可以交給計算機的事情,都交給計算機來處理—是輔助處理—按照人們的要求—事先安排的模式進行處理。>自然數的計算、整數的計算、實數的計算、複數的計算、矢量-向量的計算、矩陣的計算、函數的計算、代數方程的計算、函數方程的計算、微分的計算、積分的計算、常微分-一元微分方程的計算、偏微分-多元微分方程的計算、連續數量的計算、離散數量的計算、集合的計算、組合數學的計算、……、……或者說:科學與工程技術應用中的數值計算、……、……方程的計算機處理這裡說的方程,是以實數域為計算範圍
  • 方程的計算機處理913(5) _javaJDK14
    計算機語言運用--數值計算9-方程的計算機處理913(5) _javaJDK14計算機:電子線路組成的計算機器。
  • 教程合集 | Fortran文件讀寫
    mod=viewthread&tid=4731fortran讀取nc數據文件:(by:xu850202)http://bbs.06climate.com/forum.php?mod=viewthread&tid=10065文件中有空行的fortran處理方法:(by:mofangbao)http://bbs.06climate.com/forum.php?
  • 圖形處理2_VFortran(2)
    實際項目與案例-圖形處理2_VFortran(2)計算機:電子線路組成的計算機器。
  • 函數的計算機處理8(10)_1VC++v6
    人與計算機則是通過計算機語言-符號系統說給計算機聽而交流。計算機語言有低級語言-機器語言、彙編、高級語言-C/C++/C#/VB/PASCAL/LISP/JAVA/PYTHON/……成百上千種之多。 作為一種計算機器—可以協助人類處理各種事情—數值計算問題、文字處理問題、圖形圖像處理問題、事務問題……。