作业帮 > 数学 > 作业

matlab中用solve解参数方程没有解析解,但将参数改成数值就能解出,因此改用fsolve来求解,但初值又不确定

来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:数学作业 时间:2024/05/08 02:52:44
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来求解,但初值又不确定
我也遇到同样的问题,试出来如下方法,不知现在晚了没有?
假设其他变量都已经赋值了,你接下来只需要
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); %这两个是把符号解变换成数值解
然后就可以继续了