如何正确使用vpasolve吗?

56个视图(30天)
Goncalo科斯塔
Goncalo科斯塔 2022年11月17日
评论道: 沃尔特·罗伯森 2022年11月18日
我试图数值解下面的一组方程
M_mag = 1;%常数简化为1
om = 2 *π* new_freq;% new_freq的值是一个数组
C1 = exp(1我* l . * om. / c);% L和c是常数
我%φ= exp (1 * * L / c om);
我nume = exp (1。* om。* n * L / c) * 4。* n / ((1 + n) ^ 2);根据n %计算
分母项= 1 + exp (2 * 1 * om。* n * L / c)。* ((n - 1) / (n + 1)) ^ 2;根据n %计算
信谊n
S = vpasolve (M_mag。/ C1 = = nume。/分母项,n,猜)%的猜测是一个数值方法通过另一个方程,在这种情况下它是1.7
每当我试图使用这个,我得到以下文本:
错误使用mupadengine / feval_internal
更多的比变量只支持多项式方程万博1manbetx
系统。
错误信谊/ vpasolve(第172行)
索尔= eng.feval_internal (“symobj:: vpasolve”,方程式,增值,X0);
我见过类似的事情在下面解释 链接 ,但我不明白的解释。同样对于这个 解释
为什么我不可以解决方程?指数条款吗?
非常感谢你的帮助。
1评论
明星黾
明星黾 2022年11月17日
我通常使用 解决 ,然后 vpa 结果。通常更可靠,尤其是函数有多个根。
太多的这段代码是在地平线,在看不见的地方提供一个特定的反应。

登录置评。

答案(2)

Torsten
Torsten 2022年11月17日
编辑:Torsten 2022年11月17日
你有两个方程1未知。MATLAB的符号工具箱不能解决这样的系统。
是n应该是真实的或复杂的吗?
6个评论
Goncalo科斯塔
Goncalo科斯塔 2022年11月18日
@Walter罗伯森 有意义,我想,它将解决一个接一个。我不明白这个工具的局限性。我如何去在这个方程解出了一个数组?一个for循环需要吗?

登录置评。


沃尔特·罗伯森
沃尔特·罗伯森 2022年11月17日
M_mag = 1;%常数简化为1
om = 2 *π* new_freq;% new_freq的值是一个数组
C1 = exp(1我* l . * om. / c);% L和c是常数
我%φ= exp (1 * * L / c om);
信谊n
我nume = exp (1。* om。* n * L / c) * 4。* n / ((1 + n) ^ 2);根据n %计算
分母项= 1 + exp (2 * 1 * om。* n * L / c)。* ((n - 1) / (n + 1)) ^ 2;根据n %计算
S = arrayfun (@ (EQN) vpasolve (EQN, n,猜),M_mag。/ C1 = = nume. /分母项)
2的评论
沃尔特·罗伯森
沃尔特·罗伯森 2022年11月18日
结果= arrayfun(函数,数组)
实际上是一样的吗
如果isempty(数组)
结果= [];
其他的
着干活= FUNCTION(数组(1));
结果= 0(大小(数组),类(着干活));
结果(1)=着干活;
K = 2:元素个数(数组)
结果(K) = FUNCTION(数组(K));
结束
结束
结果= arrayfun(函数,数组,“统一”,0)
实际上是一样的吗
结果=细胞(大小(数组));
K = 1:元素个数(数组)
结果{K} = FUNCTION(数组(K));
结束
结果= arrayfun(函数、ARRAY1 ARRAY2)
实际上是一样的吗
断言(isequal(大小(ARRAY1),大小(ARRAY2)),输入数组必须相同大小的);
如果isempty (ARRAY1)
结果= [];
其他的
着干活=函数(ARRAY1 (1) ARRAY2 (1));
结果= 0(大小(ARRAY1)、类(着干活));
结果(1)=着干活;
K = 2:元素个数(ARRAY1)
结果(K) = FUNCTION (ARRAY1 (K), ARRAY2 (K));
结束
结束
所以你输入一个函数处理(通常),和一个或多个数组必须完全相同的大小。输出是相同大小的数组。指定当“制服”,0,输出是一个单元阵列包含的结果执行函数对应的值在每个数组。没有指定如果“制服”,0,输出是一个常规数组中包含的结果执行对应的函数在每个组值依次从数组中。

登录置评。

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!