如何利用matlab求解方程

[复制链接]
1135|2
 楼主| gaoyang9992006 发表于 2018-12-3 21:37 | 显示全部楼层 |阅读模式
1.    前言

作为三大数学软件之一,matlab在数值计算方法的能力首屈一指。求解方程是工科学习和工程计算中最基础、最常见的问题。掌握利用现代化工具求解方程的方法对于提升我们的工科素养至关重要。为此,本篇将对matlab中求解方程的方法进行介绍。


2.    用法

20180422124320991.jpg

求解过程

2.1    指明变量

告诉电脑方程中所含有的变量,包括参数和未知变量。比如:所求解的方程为:,很显然该方程中有a,b,c,x符号变量,因此该步骤的写法为:

  1. syms a b c x

2.2    指明方程,未知数和限制条件(非必需)

887785c05317a8b7cc.png

2.3    获得所求方程的解

如果为多个函数,该解存储形式为结构体。


 楼主| gaoyang9992006 发表于 2018-12-3 21:38 | 显示全部楼层

3.    具体实例

3.1   求解sin(x)=1的通解

具体代码:

  1. syms x

  2. [x,params,conds]=solve(sin(x)==1,'ReturnConditions', true)

结果

  1. solx =pi/2+2*pi*k

  2. params =k

  3. conds =in(k,'integer')

可以看出,该方程的通解为:


 楼主| gaoyang9992006 发表于 2018-12-3 21:39 | 显示全部楼层

3.2   求解以下方程:

代码:

  1. syms a b c y x

  2. [x,y]=solve([a*x^2+b*y+c==0,a*x+2*y==4],[x,y])

结果:

  1. x =

  2. ((a*b)/4-(-(a*(- a*b^2+32*b +16*c))/16)^(1/2))/a

  3. ((a*b)/4+(-(a*(- a*b^2+32*b +16*c))/16)^(1/2))/a



  4. y =

  5. (-(a*(- a*b^2+32*b +16*c))/16)^(1/2)/2-(a*b)/8+2

  6. 2-(-(a*(- a*b^2+32*b +16*c))/16)^(1/2)/2-(a*b)/8

即:



您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:如果你觉得我的分享或者答复还可以,请给我点赞,谢谢。

2052

主题

16403

帖子

222

粉丝
快速回复 在线客服 返回列表 返回顶部