matlab中如何求解一个变量和另一个变量的关系,例如f(x,y)=0,求y和x的关系

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab中如何求解一个变量和另一个变量的关系,例如f(x,y)=0,求y和x的关系相关的知识,希望对你有一定的参考价值。

syms q0 w0 lamda l f L M1 M2 M3 M q w;
w0=0.015;
lamda=0.000006;
f=10;
M1=[1 l;0 1];
M2=[1 0;-1/f 1];
M3=[1 L;0 1];
M=(M3)*(M2)*(M1);
q0=(i*pi*w0^2)/lamda;
q=(M(1).*q0+M(2))/(M(3).*q0+M(4));
solve('real(1/q)=0','L');
??? Error using ==> solve
Error, (in fsolve) q is in the equation, and is not solved for

还不不行啊

参考技术A 可以用solve函数,例如
solve('x^2+y^2-100=0','y')

ans =

(-x^2+100)^(1/2)
-(-x^2+100)^(1/2)

你这里不应该用引号,改为
solve(real(1/q),L)
不过这个方程没有解析解本回答被提问者采纳

matlab 如何保留变量值

现有两个函数,分别叫kuandu和chineselisan。函数chineselisan经过计算得到一个EucDist值,函数kuandu调用函数chineselisan就可以得到多个EucDist值。
要求:如何保留函数kuandu调用函数chineselisan所得到的每一个EucDist值,请给出集体程序,谢谢!

  在使用matlab时,通常要将计算的结果保存到mat文件中。使用的命令是: save filename
  但是用上述命令保存的时候,会将计算过程中的其他变量一起保存了。这中粗糙的保存有以下缺点:
  (1)不需要的数据信息保存到mat文件中,导致mat文件过大;
  (2)下次load这个mat文件时,会显示出其他不需要的数据,占用系统内存。
  因此,在保存数据时,应保存有用的数据变量。
  处理方式:
  (1)先删除变量,再保存
  例如变量a,b,c,d,e,f,g,需要保留a,e,f的值,可以采用命令:clear b c d; 然后save filename
  【适用情况】冗余变量不多的情况,保存的变量较多。
  (2)保存时,指定保存的变量
  例如变量a,b,c,d,……几十几百个变量,需要保留a的值,可以采用命令:save filename a

  【适用情况】冗余变量非常多,保存的变量较少。
参考技术A 可能是因为函数kuandu调用函数chineselisan的时候,上次调用的结果都被下次调用的结果覆盖了。结果被存在同一个变量中了。我们只要将每一个函数chineselisan返回的结果存在数组中就可以了,例如:
i=1:n;
x(i)=chineselisan( 参数 );
或者直接将结果在命令窗口中输出来,即把‘ ;’去掉就可以了本回答被提问者采纳
参考技术B 因为函数是单调的,可以利用二分法来做,给定一个x的初始值,求出f(x),比较这个f(x)与已知f(x)数值的大小,
然后取x/2,再次求出f(x)并比较大小,这样就可以确定出已知f(x)的自变量x取值范围是在0-x/2还是在x/2-x之间,然后再取x/4或者3x/4,求取f(x)值与已知f值比较,知道达到你所要求的精度就可以结束了,这样这个x值实际上是无限的靠近真实解。
不知道看明白了没有。
参考技术C 用save filename var
将工作区变量var保存在filename.mat中
读取用load

以上是关于matlab中如何求解一个变量和另一个变量的关系,例如f(x,y)=0,求y和x的关系的主要内容,如果未能解决你的问题,请参考以下文章

如何用matlab求解0-1规划问题

如何在matlab定义函数中定义参数的数据类型

matlab符号求解器:如何在答案中包含点运算符

如何用matlab来求解多元一次现性方程

MATLAB的符号运算变量如何创建?

matlab——符号方程求解