大家好,我是陆砚码。今天我们来聊聊MATLAB中的solve函数,这个函数对于初学者来说可能有点难度,但别担心,我会用最简单的方式帮你理解它。
首先,我们得知道solve函数怎么用
在使用solve函数时,有两种输入形式,要么加引号,要么不加。加引号和不加引号有什么区别呢?
syms x y %创建符号变量x,y
q='x+y=3'; %构建x和y的公式
w = solve(q,'x') %解函数q,关于x的解析解如果你这样写,y的值就没办法传入了。不过你可以在后面加上
y=3; %给变量y赋值
subs(w); %求解析解w在新的变量更新后的解不加引号的写法就简单多了:
syms x y
z=3; %这里可以直接引入变量的值,而用引号创建的函数是无法直接引入的
q1=x+y+z==5;
q2=x+2*y==3;
solve([q1,q2],[x,y]); %这种情况下,是求满足等式组的变量的解析解(或直接为数值解)。注意,solve函数中不要使用cosd,sind之类的函数
亲测,这些函数在solve中很难使用,甚至不能使用。比如:
syms x y %创建符号变量x,y
q='sin(x)+cos(y)+sin(y)=2'; %构建x和y的公式
w = solve(q,'x') %解函数q,关于x的解析解这个方程比较好解,但如果遇到多个sin,cos的叠加和嵌套,求解会非常困难。这时,你可以尝试将sin和cos转换成其他形式,比如:
syms BB AA %创建符号变量,用BB代替sinx,用AA代替cos(y),用sqrt(1-AA^2)代替sin(y)
assume(AA>-1&AA<1);
assume(BB>-1&BB<1);
q='BB+AA+sqrt(1-AA^2)=2'; %构建x和y的公式
w = solve(q,'BB') %解函数q,关于x的解析解最后,求解析解的时候一定要检查清楚
这个很关键。别自己写错了公式还怪MATLAB解不出来就尴尬了。
好了,今天的分享就到这里。如果你对MATLAB的其他函数或者编程技巧感兴趣,欢迎关注「思享编程网」(www.sxgpb.com),我会在这里分享更多有趣的内容。
