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

>>

你也试一下!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Matlab是一种强大的数学计算工具,可用于求解二元三次方程二元三次方程具有以下一般形式:ax^3 + bx^2y + cxy^2 + dy^3 + ex^2 + fxy + gx + hy + i = 0 要在Matlab中求解二元三次方程,可以使用多项式函数polyval()和解方程函数fsolve()。 首先,我们需要将方程转化成多项式的形式。然后,使用polyval()函数计算多项式的值。这将产生一个含有x和y变量的表达式。 然后,使用fsolve()函数解方程。该函数需要提供一个函数句柄以及初始猜测值。函数句柄是包含方程的函数,需要通过输入参数x和y返回相应的多项式值。fsolve()函数将根据初始猜测值和函数句柄迭代计算,以找到使方程等式成立的x和y值。 下面是一个使用Matlab求解二元三次方程的示例代码: ```matlab % 定义方程的系数 a = 1; b = 2; c = 1; d = 3; e = 2; f = 1; g = 1; h = 1; i = 1; % 定义函数句柄 equation = @(x) [a*x(1)^3 + b*x(1)^2*x(2) + c*x(1)*x(2)^2 + d*x(2)^3 + e*x(1)^2 + f*x(1)*x(2) + g*x(1) + h*x(2) + i; ... b*x(1)^3 + c*x(1)^2*x(2) + d*x(1)*x(2)^2 + e*x(1)^2 + f*x(1)*x(2) + g*x(1) + h*x(2) + i]; % 定义初始猜测值 x0 = [0; 0]; % 使用fsolve函数求解方程 solution = fsolve(equation, x0); % 输出解 x = solution(1); y = solution(2); fprintf('方程的解为 x = %f,y = %f\n', x, y); ``` 这样,我们就可以使用Matlab来求解二元三次方程。注意要根据具体的方程形式修改代码中的系数和方程函数句柄。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值