计算机语言运用--数值计算9-方程的计算机处理96(5)_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,或,
![f71cff7f5a51eab5e2065046eedfe4b2.png](https://img-blog.csdnimg.cn/img_convert/f71cff7f5a51eab5e2065046eedfe4b2.png)
或
![d2e33f8bc51e7848cf923789a6478860.png](https://img-blog.csdnimg.cn/img_convert/d2e33f8bc51e7848cf923789a6478860.png)
……、……
计算机如何处理这些问题呢?,问题的描述是什么样子的,才能充分利用计算机呢?
当然是代数形式的。便于计算机发挥特长,便于程序软件的重用性。通过用户交互,决定将什么样的具体问题交给计算机进行数值处理。
方程的计算机处理
MATLAB语言及其平台、Fotran语言平台 C语言v6平台 C语言vs平台 C++语言v6平台
C++语言VS平台
对于任何一个计算机语言来说,X+a=b型的方程也需要进行改造:
成为----X=b-a的样式;
计算机是进行数值计算的好帮手,因此需要对a,b预先赋值,再进行计算;
那么对于三元一次方程呢?也是如此。当然,最好是用求解方程的公式来进行处理—也就是,用它们作为计算机语言描述的基础。当然,需要计算机语言描述判别分母为零。这样,便有了方程处理的前期工作,手工处理。
有数学家推导的求根公式可以直接利用
从数学问题的自然语言表述到数学问题的计算机语言表述
三元一次方程组求解
求解的计算机语言表达分析,可以简单说明如下
算法说明:
![9a5da8444678bd3092bf0c406b328e62.png](https://img-blog.csdnimg.cn/img_convert/9a5da8444678bd3092bf0c406b328e62.png)
接下来是说:C++是编译型语言,因此需要将所做工作用计算机语言编制程序,再交给计算机来处理。作为静态数据的模式,与MATLAB不同,需要对计算的数据—数值或代数预先声明变量,以便申请到内存来放置。
用C++语言编写为文件形式,接着编译成*.exe文件,再运行—人机交互。
程序文件
//三元一次方程组--threevariable linear equations
// CubicEquation3_1.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include
#include
#include
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
//variable declaration
int i,j,k,N;
float ai[3][4];
float D,D1,D2,D3;
float x,y,z;
char Fout_name[10];
//input
cout<输入1个整数N,指定你的计算次数"<
cin>>N;
for(i=0;i
{
cout<请输入三元一次方程的系数,a,b,c,d, 共三组"<
for(j=0;j<3;j++)
{
for(k=0;k<4;k++)
{
cin>>ai[j][k];
}
}
//data processing
D=ai[0][0]*ai[1][1]*ai[2][2]+ai[0][1]*ai[1][2]*ai[2][0]+ai[0][2]*ai[1][0]*ai[2][1]\
-ai[0][0]*ai[1][2]*ai[2][1]-ai[0][1]*ai[1][0]*ai[2][2]-ai[0][2]*ai[1][1]*ai[2][0];
D1=ai[0][3]*ai[1][1]*ai[2][2]+ai[0][1]*ai[1][2]*ai[2][3]+ai[0][2]*ai[2][1]*ai[1][3]\
-ai[0][3]*ai[1][2]*ai[2][1]-ai[0][1]*ai[1][3]*ai[2][2]-ai[0][2]*ai[1][1]*ai[2][3];
D2=ai[0][0]*ai[1][3]*ai[2][2]+ai[0][3]*ai[1][2]*ai[2][0]+ai[0][2]*ai[2][3]*ai[1][0]\
-ai[0][2]*ai[1][3]*ai[2][0]-ai[0][3]*ai[1][0]*ai[2][2]-ai[0][0]*ai[2][3]*ai[1][2];
D3=ai[0][0]*ai[1][1]*ai[2][3]+ai[0][1]*ai[1][3]*ai[2][0]+ai[0][3]*ai[2][1]*ai[1][0]\
-ai[0][3]*ai[1][1]*ai[2][0]-ai[0][1]*ai[1][0]*ai[2][3]-ai[0][0]*ai[2][1]*ai[1][3];
if(D!=0.0)
{
x=D1/D;
y=D2/D;
z=D3/D;
//output
cout<方程有三个根:x= "<
//save result
cout<数据处理完毕,请输入保存文件名,格式为:*.txt"<
cin>>Fout_name;
ofstreamfile_out(Fout_name); //,,,
file_out<键盘输入的三元一次方程系数为:a1="<
<
file_out<
file_out<键盘输入的三元一次方程系数为:a2="<
<
file_out<
file_out<键盘输入的三元一次方程系数为:a3="<
<
file_out<
file_out<计算机求解方程的结果如下,三个解:"<
file_out<
file_out<
file_out<
cout<计算机处理结果被保存为 "<请检查!"<
}
else
cout<该方程组没有解!"<
}
system("pause");
return 0;
}
求解过程
输入1个整数N,指定你的计算次数
3
请输入三元一次方程的系数,a,b,c,d,共三组
1 2 3 4 5 6 7 8 9 10 11 12
该方程组没有解!
请输入三元一次方程的系数,a,b,c,d,共三组
1 3 5 6 8 9 4 3 2 -11 12 13
方程有三个根:x=-0.327103 ,y= 0.0841122, z= 1.21495
数据处理完毕,请输入保存文件名,格式为:*.txt
1.TXT
计算机处理结果被保存为1.TXT 请检查!
请输入三元一次方程的系数,a,b,c,d,共三组
2 4 6 -8 3 5 -7 9.7 3 -6 9 11
方程有三个根:x=3.54271 ,y= -1.91667, z= -1.23646
数据处理完毕,请输入保存文件名,格式为:*.txt
2.TXT
计算机处理结果被保存为2.TXT 请检查!
请按任意键继续. . .
进行结果
![e77950f105aafa928070ba5353cebc82.png](https://img-blog.csdnimg.cn/img_convert/e77950f105aafa928070ba5353cebc82.png)
咱不是要说明实际数学问题怎么变成计算机处理吗!就是数学方程的预先处理问题、计算机语言描述问题嘛。
在C、C++、C#、Fortran等语言中,你能看到复数的处理问题与描述。
感觉咋样?什么是方程的计算机处理—算法及其描述,运行及其人机交互。