matlab中用solve解参数方程没有解析解,但将参数改成数值就能解出,因此改用fsolve来求解,但初值又不确定用matlab运行[k1,x]=solve('n*k1+m*tan(k1*x)','k1-sqrt(k^2-log(R1/R2)*log(R1/R2)/x^2)','k1','x')没有解析解,其
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/01 07:15:42
![matlab中用solve解参数方程没有解析解,但将参数改成数值就能解出,因此改用fsolve来求解,但初值又不确定用matlab运行[k1,x]=solve('n*k1+m*tan(k1*x)','k1-sqrt(k^2-log(R1/R2)*log(R1/R2)/x^2)','k1','x')没有解析解,其](/uploads/image/z/12904905-57-5.jpg?t=matlab%E4%B8%AD%E7%94%A8solve%E8%A7%A3%E5%8F%82%E6%95%B0%E6%96%B9%E7%A8%8B%E6%B2%A1%E6%9C%89%E8%A7%A3%E6%9E%90%E8%A7%A3%2C%E4%BD%86%E5%B0%86%E5%8F%82%E6%95%B0%E6%94%B9%E6%88%90%E6%95%B0%E5%80%BC%E5%B0%B1%E8%83%BD%E8%A7%A3%E5%87%BA%2C%E5%9B%A0%E6%AD%A4%E6%94%B9%E7%94%A8fsolve%E6%9D%A5%E6%B1%82%E8%A7%A3%2C%E4%BD%86%E5%88%9D%E5%80%BC%E5%8F%88%E4%B8%8D%E7%A1%AE%E5%AE%9A%E7%94%A8matlab%E8%BF%90%E8%A1%8C%5Bk1%2Cx%5D%3Dsolve%28%27n%2Ak1%2Bm%2Atan%28k1%2Ax%29%27%2C%27k1-sqrt%28k%5E2-log%28R1%2FR2%29%2Alog%28R1%2FR2%29%2Fx%5E2%29%27%2C%27k1%27%2C%27x%27%29%E6%B2%A1%E6%9C%89%E8%A7%A3%E6%9E%90%E8%A7%A3%2C%E5%85%B6)
matlab中用solve解参数方程没有解析解,但将参数改成数值就能解出,因此改用fsolve来求解,但初值又不确定用matlab运行[k1,x]=solve('n*k1+m*tan(k1*x)','k1-sqrt(k^2-log(R1/R2)*log(R1/R2)/x^2)','k1','x')没有解析解,其
matlab中用solve解参数方程没有解析解,但将参数改成数值就能解出,因此改用fsolve来求解,但初值又不确定
用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的值算出来,希望后面可以直接把他们的数值代到方程中,或者怎么解我上述的方程?
matlab中用solve解参数方程没有解析解,但将参数改成数值就能解出,因此改用fsolve来求解,但初值又不确定用matlab运行[k1,x]=solve('n*k1+m*tan(k1*x)','k1-sqrt(k^2-log(R1/R2)*log(R1/R2)/x^2)','k1','x')没有解析解,其
我也遇到同样的问题,试出来如下方法,不知现在晚了没有?
假设其他变量都已经赋值了,你接下来只需要
syms k1 x equa1 equa2
equa1=n*k1+m*tan(k1*x);
equa2=k1-sqrt(k^2-log(R1/R2)*log(R1/R2)/x^2);
[k1,x]=solve(equa1,equa2,'k1','x');
kk1=double(k1);
xx=double(x); %这两个是把符号解变换成数值解
然后就可以继续了
使用vpa和digits函数
或用subs将其中的符号变量替换掉
1、程序开始的syms 里面别写 n、m、k、R1、R2 或者将n、m、k、R1、R2的值赋值给一些新的没有syms 定义过的参数试试。
2、在solve 或者fsolve里面最好别用字符变量。谢谢你的回答。但如果syms里不先定义变量就会出错;尝试过将值赋给其他参数,不行;不用字符变量那用什么,我需要的就是一些变量,那matlab有其他计算字符变量的函数吗?可以将计算的结果复制到另一个m...
全部展开
1、程序开始的syms 里面别写 n、m、k、R1、R2 或者将n、m、k、R1、R2的值赋值给一些新的没有syms 定义过的参数试试。
2、在solve 或者fsolve里面最好别用字符变量。
收起