如何利用matlab求解方程
1. 前言
作为三大数学软件之一,matlab在数值计算方法的能力首屈一指。求解方程是工科学习和工程计算中最基础、最常见的问题。掌握利用现代化工具求解方程的方法对于提升我们的工科素养至关重要。为此,本篇将对matlab中求解方程的方法进行介绍。
2. 用法
求解过程
2.1 指明变量
告诉电脑方程中所含有的变量,包括参数和未知变量。比如:所求解的方程为:,很显然该方程中有a,b,c,x符号变量,因此该步骤的写法为:
syms a b c x |
2.2 指明方程,未知数和限制条件(非必需)
eqns | 方程,如果超过一个,则放在[ ]中,并用逗号隔开。如: |
Vars | 待求的未知数 |
Names-value(非必需) | Names:‘returnConditions’ 是否返回出含有参数的通解。’true‘为返回,’false‘为否,即给出一个特解; |
Name: 'IgnoreAnalyticConstraints' 是否给出解的最简形式。 ‘true‘为是,‘false’为否 | |
Name:'PrincipalValue' 是否仅给出一个解。False为返回所有的解,true为仅返回一个解; | |
Name:’Real’ 是否仅返回实数解 |
2.3 获得所求方程的解
如果为多个函数,该解存储形式为结构体。
3. 具体实例
3.1 求解sin(x)=1的通解
具体代码:
syms x [x,params,conds]=solve(sin(x)==1,'ReturnConditions', true) |
结果
solx =pi/2+2*pi*k params =k conds =in(k,'integer') |
可以看出,该方程的通解为:
3.2 求解以下方程:
代码:
syms a b c y x [x,y]=solve([a*x^2+b*y+c==0,a*x+2*y==4],[x,y]) |
结果:
x = ((a*b)/4-(-(a*(- a*b^2+32*b +16*c))/16)^(1/2))/a ((a*b)/4+(-(a*(- a*b^2+32*b +16*c))/16)^(1/2))/a
y = (-(a*(- a*b^2+32*b +16*c))/16)^(1/2)/2-(a*b)/8+2 2-(-(a*(- a*b^2+32*b +16*c))/16)^(1/2)/2-(a*b)/8 |
即: