計算機語言運用--數值計算9-方程的計算機處理96(3)_C++vs
計算機:電子線路組成的計算機器。人與計算機則是通過計算機語言-符號系統說給計算機聽而交流。
計算機語言有低級語言-機器語言、彙編、高級語言-C/C++/C#/VB/PASCAL/LISP/JAVA/PYTHON/……成百上千種之多。
作為一種計算機器—可以協助人類處理各種事情—數值計算問題、文字處理問題、圖形圖像處理問題、事務問題……。自從有了數字計算的計算機器,幾乎所有的可以交給計算機的事情,都交給計算機來處理—是輔助處理—按照人們的要求—事先安排的模式進行處理。
數值計算
代數的計算、初等函數的計算、代數方程的求解、解析幾何與微分幾何的求解、矢量-張量與場論的求解、抽象代數-空間及泛函分析、級數與變換、特殊函數問題、概率統計與隨機過程分析計算、誤差分析與實驗數據處理、最優化方法分析、有限單元法求解、數論分析、集合論及其計算、拓撲學分析與計算、組合數學的計算、圖結構處理、數理邏輯分析與處理、……、……
或者說:
自然數的計算、整數的計算、實數的計算、複數的計算、矢量-向量的計算、矩陣的計算、函數的計算、代數方程的計算、函數方程的計算、微分的計算、積分的計算、常微分-一元微分方程的計算、偏微分-多元微分方程的計算、連續數量的計算、離散數量的計算、集合的計算、組合數學的計算、……、……
或者說:科學與工程技術應用中的數值計算、……、……
方程的計算機處理
這裡說的方程,是以實數域為計算範圍。
這裡說的方程:是含有未知數的等式。
可以是a+5=8,或X+A=B,或ax2+bx+c=0,或ax+by=c與dx-ey=f,或ax"+bx=c,或
,或
……、……
計算機如何處理這些問題呢?,問題的描述是什麼樣子的,才能充分利用計算機呢?
當然是代數形式的。便於計算機發揮特長,便於程序軟體的重用性。通過用戶交互,決定將什麼樣的具體問題交給計算機進行數值處理。
方程的計算機處理
MATLAB語言及其平臺、Fotran語言平臺 C語言V6平臺 C語言VS平臺 C++語言V6平臺
C++語言VS平臺
對於任何一個計算機語言來說,X+a=b型的方程也需要進行改造:
成為----X=b-a的樣式;
計算機是進行數值計算的好幫手,因此需要對a,b預先賦值,再進行計算;
那麼對於二元一次方程呢?也是如此。當然,最好是用求解方程的兩個解的公式來進行處理—也就是,用它們作為計算機語言描述的基礎。當然,需要計算機語言描述判別分母為零。這樣,便有了方程處理的前期工作,手工處理。
有數學家推導的求根公式可以直接利用
從數學問題的自然語言表述到數學問題的計算機語言表述
二元一次方程組求解
求解的計算機語言表達分析,可以簡單說明如下
算法說明:
方程的一般形式:a1x+b1y=c1 ; a2x+b2y=c2 或者
粗糙的給出求解的一般形式 ;
求解的注意事項:需要判斷① a1≠0;b1≠0; a2≠0; b2≠0;
對計算機語言的表述形式來說:需要聲明和定義的變量有 a1;x;b1;y;c1 ; a2;x;b2;y;c2;
需要定義的計算語句有變量賦值語句
數值計算語句 ;
判斷語句和格式 if then end if
接下來是說:C++是編譯型語言,因此需要將所做工作用計算機語言編製程序,再交給計算機來處理。作為靜態數據的模式,需要對計算的數據—數值或代數預先聲明變量,以便申請到內存來放置。
用C++語言編寫為文件形式,接著編譯成*.exe文件,再運行—人機互動。
程序文件
//二元一次方程組--linearequation
//LinearEquation.cpp : 定義控制臺應用程式的入口點。
//
#include"stdafx.h"
#include<iostream>
#include<fstream>
#include<math.h>
using namespacestd;
int _tmain(intargc, _TCHAR* argv[])
{
/*變量聲明*/
int i,N;
float a1,b1,c1,a2,b2,c2;
double Q0,x,y;
char Fout_name[10];
/*數據輸入-標準IO_鍵盤顯示器*/
cout<<"輸入1個整數N,指定你的計算次數"<<endl;
cin>>N;
for(i=0;i<N;i++)
{
cout<<"請輸入二元一次方程的係數,a1,b1,c1 用空格隔開"<<endl;
cin>>a1>>b1>>c1;
cout<<"請輸入二元一次方程的係數,a2,b2,c2 用空格隔開"<<endl;
cin>>a2>>b2>>c2;
//數據處理過程
Q0=a1*b2-b1*a2;
if(Q0!=0)
{
x=(b2*c1-b1*c2)/Q0;
y=(a1*c2-a2*c1)/Q0;
//標準IO_鍵盤顯示器
cout<<"方程有兩個解:"<<endl;
cout<<x<<" 與 "<<y<<endl;
//信息存儲
cout<<"數據處理完畢,請輸入保存文件名,格式為:*.txt"<<endl;
cin>>Fout_name;
ofstream file_out(Fout_name);
file_out<<"鍵盤輸入的二元一次方程係數為:a1="<<a1<<" b1="<<b1<<"c1="<<c1<<endl;
file_out<<endl;
file_out<<"鍵盤輸入的二元一次方程係數為:a2="<<a2<<" b2="<<b2<<"c2="<<c2<<endl;
file_out<<endl;
file_out<<"計算機求解方程的結果如下,兩個解:"<<endl;
file_out<<"x="<<x<<endl;
file_out<<"y="<<y<<endl;
cout<<"計算機處理結果被保存為 "<<Fout_name<<" 請檢查!"<<endl;
}
else
cout<<"該方程組沒有解!"<<endl;
}
system("pause");
return 0;
}
求解過程
輸入1個整數N,指定你的計算次數
3
請輸入二元一次方程的係數,a1,b1,c1 用空格隔開
2 3 4
請輸入二元一次方程的係數,a2,b2,c2 用空格隔開
4 6 -8
該方程組沒有解!
請輸入二元一次方程的係數,a1,b1,c1 用空格隔開
1 2 3
請輸入二元一次方程的係數,a2,b2,c2 用空格隔開
4 5 6
方程有兩個解:
-1 與 2
數據處理完畢,請輸入保存文件名,格式為:*.txt
1.txt
計算機處理結果被保存為 1.txt 請檢查!
請輸入二元一次方程的係數,a1,b1,c1 用空格隔開
3 5 9
請輸入二元一次方程的係數,a2,b2,c2 用空格隔開
4 8 5
方程有兩個解:
11.75 與 -5.25
數據處理完畢,請輸入保存文件名,格式為:*.txt
2.txt
計算機處理結果被保存為 2.txt 請檢查!
請按任意鍵繼續. . .
求解結果
咱不是要說明實際數學問題怎麼變成計算機處理嗎!就是數學方程的預先處理問題、計算機語言描述問題嘛。
在C、C++、C#、Fortran等語言中,你能看到複數的處理問題與描述。
感覺咋樣?什麼是方程的計算機處理—算法及其描述,運行及其人機互動。