计算机语言运用--数值计算9-方程的计算机处理91-3_Matlab
计算机:电子线路组成的计算机器。人与计算机则是通过计算机语言-符号系统说给计算机听而交流。
计算机语言有低级语言-机器语言、汇编、高级语言-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语言及其平台
从最简单的起步,再逐级复杂,以便体会程序编写、方程的手工预处理及其人机交互。
可以用脚本文件—解释型、动态数据类型的计算机语言连续自动运行模式
a=input('输入第一个数 ')
b=input('输入第二个数 ')
x=b-a;
disp('输出计算结果 x=b-a= '),x
disp('输出计算结果 x=b+a= '),b+a
disp('输出计算结果 x=b*a='),b*a
disp('输出计算结果 x=b/a='),b/a
感觉咋样?什么是方程的计算机处理—算法及其描述,运行及其人机交互。
从最简单的代数方程计算机处理开始,通过计算机语言的运行了解、理解程序编写需要的格式。算法描述的计算机处理模式--将方程进行必要的改变,适合计算机语言描述,适合计算机按照数字电路的逻辑模式进行处理。
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;
需要定义的计算语句有 变量赋值语句
数值计算语句 ;
%二元一次方程组ax+by=c;dx+ey=f解的计算
a1=input('请输入x的系数,非0实数: ')
b1=input('请输入y的系数,非0实数: ')
c1=input('请输入常数项数: ')
a2=input('请输入x的系数,非0实数: ')
b2=input('请输入y的系数,非0实数: ')
c2=input('请输入常数项数: ')
y=a1*b2-a2*b1
if y~=0
y1=(b2*c1-b1*c2)/y;
y2=(a1*c2-a2*c1)/y;
disp('这就是该方程的两个根'),y1,y2
else
disp('该方程无解')
end
看看运行结果
请输入x的系数,非0实数: 2
a1 = 2
请输入y的系数,非0实数: 4
b1 = 4
请输入常数项数: 6
c1 = 6
请输入x的系数,非0实数: 3
a2 = 3
请输入y的系数,非0实数: 5
b2 = 5
请输入常数项数: 7
c2 = 7
这就是该方程的两个根
y1 = -1
y2 = 2
>>
你可能说,这太笨了!人家有现成的函数。是的。
>> S = solve('2*x + 4*y = 6','3*x + 5*y = 7')
S =
x: [1x1 sym]
y: [1x1 sym]
>> S.x
ans = -1
>> S.y
ans = 2
>>
这就是MATLAB的优势。它将常用的数学问题求解,都做成了库函数,用户简单调用即可。
咱不是要说明实际数学问题怎么变成计算机处理吗!就是数学方程的预先处理问题、计算机语言描述问题嘛。
上述结果对比证明,咱编写的程序是对的。MATLAB 提供的函数是可以自动解决问题。否则,咱还要再多写几行程序。
在C、C++、C#、Fortran等语言中,你就能看到这个问题的这种处理与描述。
再测试一个
MATLAB函数解
S = solve('12*x + 3.4*y = 7.6','7.3*x - 5*y = 7')
S =
x: [1x1 sym]
y: [1x1 sym]
>> S.x
ans =.72860174487149257250648431973591
>> S.y
ans =-.33624145248762084414053289318557
用户编写程序解
请输入x的系数,非0实数: 12
a1 = 12
请输入y的系数,非0实数: 3.4
b1 = 3.4000
请输入常数项数: 7.6
c1 = 7.6000
请输入x的系数,非0实数: 7.3
a2 = 7.3000
请输入y的系数,非0实数: -5
b2 = -5
请输入常数项数: 7
c2 = 7
这就是该方程的两个根
y1 = 0.7286
y2 = -0.3362
>>
你也试一下!