问题提出(答案在最后以图片形式呈现)
对于任意的一元方程,如何求解,在日常生活中,通常使用计算器的solve键直接求解,但是实际情况是当你用拿在手上的计算器去计算如下的方程时:
1/x+1/(x+0.05)+1/(x+0.1)+1/(x+2)=1/(x+1)+1/(x+0.5)
是不是就会发现你的计算器根本不听你的话了?大多数都会算不出结果?那么这个时候谁能拯救你呢?matlab就是其中一个很好的的工具?
探索研究
让我们赶紧尝试吧。
【学习目标】根据代码输入与输出情况,基本猜想代码关键字的大概含义
首先看一组相对有意思的代码
syms x
[x,params,conds]=solv
e(sin(x)==1,'ReturnConditions',true)
-----------------------------------------------------------
Matlab给出的答案
x =
pi/2 + 2*pi*k
params =
k
conds =
in(k, 'integer')
不知道看完这个会不会有些云里雾里的,更加不会了,不过呢先克服奇奇怪怪的才更有成就感哦
我们会发现,这不就是初中方程sin(x)=1的所有解吗,
观察可以大概猜猜syms应该是定义一个参数,就类似于c语言中double x
params根据答案得出的k,大概猜想就是一个变量(这个变量应该是有类型的,conds限制了k为整型)
conds确定是什么类型,这里integer就是整型
说了这么多其实有用的就一句,就是说
syms是用来定义变量的
对比探索
下面哪一个代码有问题,不是一元线性方程的解?
syms x
x=solve([x^2+7x+10==0],[x])
syms x
x = solve([x^2 + 7*x + 10==0],[x])
代码一出现问题,原因在于matlab中*不能省略,7*x不能写成7x
一元方程的一般格式就是
syms x
x = solve([方程],[x]),所以就有最开始提到的方程求解,
尝试一下你会输入了吗?
拓展
多个参数的情况,注意这里【x,y】是二元方程
syms a b c y x
[x,y]=solve([a*x^2+b*y+c==0,a*x+2*y==4],[x,y]
有兴趣可以在matlab中输入以上代码,下期再见吧