matlab中方程过于复杂求解不出来怎么办

matlab中方程过于复杂求解不出来怎么办我有一个双变量的函数表达式,我想求解在因变量y取得极值时候这两个自变量之间的关系式,但是方程过于复杂求解不出来怎么办?
程序如下:
clear;clc;
syms x10 a t c r
x10 =(2440000000*(55450*exp(r/3)*exp((2*a)/3 + (2*r)/3) - exp((7*r)/3)*exp((2*a)/3 + (2*r)/3)*exp((7*a)/25 + (2*r)/3) + 110900))/(1109*(exp(r/3)*exp((2*a)/3 + (2*r)/3) + 2))
y1=(23*a*x10*exp(- (7*a)/25 - 3*r))/(a + r)
y2=- (23*a*x10*exp(- (71*a)/75 - (11*r)/3))/(a + r)
y3=- (3759*a*x10*exp(-2*r)*(exp(- (7*a)/25 - (2*r)/3) - 1))/(10*(21*a + 50*r))
y=y1+y2+y3
dy=diff(y)
[a]=solve('dy=0','a')

按题意,应该是有 x10, y1, y2, y3, y 这几个函数,都是关于变量r, a 的,最后满足的方程是

∂y/∂a=0

将倒数第二行代码做如下修改可能更符合题意:

dy = diff(y,a)

dy 亦是关于r, a 的函数,把它显示出来可以发现结果很长,这样就难以求得方程 dy(r,a) = 0的显式表达式。但具体调用函数的时候可以寻求数值解,下面是 dy(r,a)=0在区域[-10 10 -20 20]上的一个曲线图:

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-08-04
1)等。。。
2)降低精度
3)分解成子问题追问

相似回答