用matlab运行[k1,x]=solve('n*k1+m*tan(k1*x)','k1-sqrt(k^2-log(R1/R2)*log(R1/R2)/x^2)','k1','x')没有解析解其中n、m、k、R1、R2是变量,但将变量换成数值就能解出数值解如果改用fsolve求解,由于n、m、k、R1、R2的值是变化的所以初值无法确定,我现在程序前半部分可鉯把n、m、k、R1、R2的值算出来希望后面可以直接把他们的数值代到方程中,哪位大神知道怎么办或者怎么解我上述的方程?
TA获得超过121个认鈳
1、程序开始的syms 里面别写 n、m、k、R1、R2 或者将n、m、k、R1、R2的值赋值给一些新的没有syms 定义过的参数试试
2、在solve 或者fsolve里面最好别用字符变量。
谢谢你嘚回答但如果syms里不先定义变量就会出错;尝试过将值赋给其他参数,不行;不用字符变量那用什么我需要的就是一些变量,那matlab有其他計算字符变量的函数吗
TA获得超过594个认可
或用subs将其中的符号变量替换掉