MATLAB代数

在MATLAB解决基本的代数方程组

MATLAB 中使用 solve 命令求解代数方程组。在其最简单的形式,solve 函数需要括在引号作为参数方程。

例如,让我们在方程求解 x, x-5 = 0

y = solve('x-5 = 0')

返回结果:

y =
 
5

然而,如果公式涉及多个符号,那么MATLAB默认情况下,假定正在解决 x,解决命令具有另一种形式:

solve(equation, variable)

在那里,还可以提到的变量。

例如,让我们来解决方程 v – u – 3t2 = 0, 或 v 在这种情况下,我们应该这样写:

solve('v-u-3*t^2=0', 'v')

运行结果:

ans =
 
3*t^2 + u

在MATLAB中解决二次方程

solve 命令也可以解决高阶方程。它经常被用来求解二次方程,该函数返回在数组中的方程的根。

下面举例子解决二次方程 x^2-8x+12=0。

clear,clc
last=solve('x^2-8*x+12=0');
disp('The first root is: '), disp(last(1));
disp('The second root is: '), disp(last(2));

运行结果:

The first root is: 
2
 
The second root is: 
6

在MATLAB解高阶方程

solve 命令还可以解决高阶方程。例如,让我们来解决一个三次方程 (x-3)^2*(x-7) = 0

clear,clc
md='(x-3)^2*(x-7)=0';
o=solve(md);
disp('The first root is: '), disp(o(1));
disp('The second root is: '),disp(o(2));
disp('The third root is: '), disp(o(3));

输出结果:

The first root is: 
3
 
The second root is: 
3
 
The third root is: 
7

在高阶方程的情况下,根长含有许多术语。可以得到的数值如根,把它们转换成一倍。

下面的例子解决了四阶方程 x4 − 7x3 + 3x2 − 5x + 9 = 0.

eq = 'x^4 - 7*x^3 + 3*x^2 - 5*x + 9 = 0';
s = solve(eq);
disp('Numeric value of first root'), disp(double(s(1)));
disp('Numeric value of second root'), disp(double(s(2)));
disp('Numeric value of third root'), disp(double(s(3)));
disp('Numeric value of fourth root'), disp(double(s(4)));
The first root is: 
    -137/397    -  817/758i  

The second root is: 
    -137/397    +  817/758i  

The third root is: 
    2606/2459  

The fourth root is: 
    3839/579   

在MATLAB中求解方程组

solve 命令也可以用于生成涉及一个以上的变量的方程系统的解决方案。我们求解方程:

 x + 3y -2z = 5

3x + 5y + 6z = 7

2x + 4y + 3z = 8

clear,clc
s = solve('x+3*y-2*z=5','3*x+5*y+6*z=7','2*x+4*y+3*z=8');
s.x
s.y
s.z
 
ans =
 
-15
 
 
ans =
 
8
 
 
ans =
 
2
 

 MATLAB扩大和收集方程

MATLAB中 expand 和 collect 命令用于扩展,并分别收集一个方程。下面的示例演示的概念:

当工作中有许多象征性的函数,你应当声明你的变量是象征意义的。

syms x
syms y
expand((x-5)*(x+9))
expand((x+2)*(x-3)*(x-5)*(x+7))
expand(sin(2*x))
expand(cos(x+y))
collect(x^3 *(x-7))
collect(x^4*(x-3)*(x-5))
ans =
 
x^2 + 4*x - 45
 
 
ans =
 
x^4 + x^3 - 43*x^2 + 23*x + 210
 
 
ans =
 
2*cos(x)*sin(x)
 
 
ans =
 
cos(x)*cos(y) - sin(x)*sin(y)
 
 
ans =
 
x^4 - 7*x^3
 
 
ans =
 
x^6 - 8*x^5 + 15*x^4

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值