matlab二元一次方程求解_方程的计算机处理913_Matlab

计算机语言运用--数值计算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,或

ce05c1de3dcdbcbe9b6c31c6d4471d45.png

c88cd9d605eb7bc85aa8fc597740dbca.png

,或

……、……

计算机如何处理这些问题呢?,问题的描述是什么样子的,才能充分利用计算机呢?

当然是代数形式的。便于计算机发挥特长,便于程序软件的重用性。通过用户交互,决定将什么样的具体问题交给计算机进行数值处理。

方程的计算机处理:

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    或者 

9a05a8f224090326d9f9ba5ce6881903.png

粗糙的给出求解的一般形式      ;

8d93fe3984db54d8d1ee479b5988c059.png

b164265e9e8c57e931945943026b46b0.png

求解的注意事项:需要判断 ①  a1≠0;b1≠0;   a2≠0; b2≠0;   

对计算机语言的表述形式来说:需要的变量有 a1;x;b1;y;c1 ;a2;x;b2;y;c2; 

需要定义的计算语句有 变量赋值语句     

数值计算语句   ; 

8d93fe3984db54d8d1ee479b5988c059.png

b164265e9e8c57e931945943026b46b0.png

%二元一次方程组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

>>

164a6228789bc89d2f57a0a923b71ee3.png

你可能说,这太笨了!人家有现成的函数。是的。

>> 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

 >>

340b6b69a5ee954822f2fbb450679863.png

这就是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

>>

你也试一下!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值