matlab中solve的用法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab中solve的用法相关的知识,希望对你有一定的参考价值。

我的函数如下。。
function [ISp,ISn]=paper_IS1(r,s)
syms x y;
[x,y]=solve('x^2+y^2-r^2', '(x-10)^2+y^2-s^2');
ISpx=vpa(x(1),3);
ISpy=vpa(y(1),3);
ISnx=vpa(x(2),3);
ISny=vpa(y(2),3);
ISp=[ISpx ISpy];
ISn=[ISnx ISny];

这是一个m file 。 可solve就是识别不了 function [ISp,ISn]=paper_IS1(r,s)里的 r 和 s .

我不知道哪里出了问题。。 请大家帮我找到问题。。 谢谢~~

参考技术A 把solve中的引号去掉就好,加引号代表string函数,x,y将以r,s符号表示,所以无法对其赋值
改后调用[ISp,ISn]=paper_IS1(2,3)
结果显示:ISp =

[ 4.75, 4.30*i]

ISn =

[ 4.75, -4.30*i]

matlab solve函数的用法

  solve函数常用于求解符号函数的解析解,方程组的解等

1.solve求解析解

syms x y
q=‘x+y=3‘;
w=solve(q,‘x‘);% 解函数q关于x的解析解

同样可以写成 solve(‘x+y=3‘,‘x‘);
但是这样的话就没法给y赋值了,所以使用 subs函数

y=3;

subs(w);%这一步也可以写为 subs(w,‘y‘,3)

2.solve解单变量方程

syms x

eqn=sin(x)==1;

solve(eqn,x)

%比如上面的例子,x的取值是可以写为一个通解的,那就可以用下面的形式

syms x
eqn=sin(x)==1;
[solx,params,conds]=solve(eqn,x,‘ReturnConditions‘,true)

这段代码的matlab运行结果是

solx =pi/2 + 2*pi*k

params =k

conds =in(k, ‘integer‘)

%显然这里面params是结果里面的参数,而conds是结果中参数的取值,in是输入的意思,intger是整数

%这里如果上面直接是s=solve的话,那就相当于建立了一个s对象,它的结果就是s.x,条件是s.comdtion

3.求解多变量方程

%如果不指明的话,solve函数就会通过symvar选择一个变量(认为该变量是要求解的变量)
clc,clear
syms a b c x
sola=solve(a*x^2+b*x+c==0,a)   %待求解的变量是a
sol=solve(a*x^2+b*x+c==0)  %待求解的变量是x

%当求解的变量大于1个时,你声明变量的顺序就是slove返回解的顺序
syms a b
[b,a]=solve(a+b==1,2*a-b==4,b,a)

 

 

 

以上是关于matlab中solve的用法的主要内容,如果未能解决你的问题,请参考以下文章

急!matlab solve用法

关于matlab solve函数的用法

matlab中solve的用法

matlab中solve的用法

matlab中solve函数的用法。悬赏20分

matlab的solve用法