有关MATLAB用solve函数求解非线性方程组的问题
试过fsolve函数,发现对初始值太敏感了,所以想试试solve函数,毕竟不用初始值,但我写了下面的程序,发现会报错:Error:Missingvariableorfun...
试过fsolve函数,发现对初始值太敏感了,所以想试试solve函数,毕竟不用初始值,但我写了下面的程序,发现会报错:Error: Missing variable or function.
我绝对是个菜鸟级,找不到错误啊!!求指点。。。
clc
clear all
syms k l c w r
ty=0.17;
thet=0.8;
afa=0.78;
a=2.18;
tc=0.15;
tw=0.2;
tr=0.33;
deta=0.1;
beta=0.935;
eq1=r-(1-ty*thet)*afa*a*(k^(afa-1))*(l^(1-afa));
eq2=w-(1-ty*thet)*(1-afa)*a*(k^afa)*l^(-afa);
eq3=afa*(1-l)*(1-tw)-(1-afa)*c*(1+tc);
eq4=beta*((1-tr)*r+1-deta)-1;
eq5=k-(1-tw)*w*l-(1-tr)*r*k+(1+tc)*c-(1-deta)*k;
[k,l,c,w,r]=solve(eq1,eq2,eq3,eq4,eq5) 展开
我绝对是个菜鸟级,找不到错误啊!!求指点。。。
clc
clear all
syms k l c w r
ty=0.17;
thet=0.8;
afa=0.78;
a=2.18;
tc=0.15;
tw=0.2;
tr=0.33;
deta=0.1;
beta=0.935;
eq1=r-(1-ty*thet)*afa*a*(k^(afa-1))*(l^(1-afa));
eq2=w-(1-ty*thet)*(1-afa)*a*(k^afa)*l^(-afa);
eq3=afa*(1-l)*(1-tw)-(1-afa)*c*(1+tc);
eq4=beta*((1-tr)*r+1-deta)-1;
eq5=k-(1-tw)*w*l-(1-tr)*r*k+(1+tc)*c-(1-deta)*k;
[k,l,c,w,r]=solve(eq1,eq2,eq3,eq4,eq5) 展开
1个回答
展开全部
你好,按照你的思路
solve在使用时,因为你的表达式里面有符号变量,所以要在最后解方程时注明需要求解的函数变量名
也就是 最后一句
[k,l,c,w,r]=solve(eq1,eq2,eq3,eq4,eq5,'k','l','c','w','r')
但是solve基本是解解析解的,但是不是每个方程都有解析解,就像你的这道,解得时候会出现BUSY,说明可能不存在解析解
希望对你有帮助
solve在使用时,因为你的表达式里面有符号变量,所以要在最后解方程时注明需要求解的函数变量名
也就是 最后一句
[k,l,c,w,r]=solve(eq1,eq2,eq3,eq4,eq5,'k','l','c','w','r')
但是solve基本是解解析解的,但是不是每个方程都有解析解,就像你的这道,解得时候会出现BUSY,说明可能不存在解析解
希望对你有帮助
追问
这样也试过,那应该是没解吧。。。谢谢哈
追答
对,应该是没有解析解。
望采纳
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询