作业帮 > 综合 > 作业

有关MATLAB用solve函数求解非线性方程组的问题

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/08 07:31:39
有关MATLAB用solve函数求解非线性方程组的问题
试过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)
按照你的思路
solve在使用时,因为你的表达式里面有符号变量,所以要在最后解方程时注明需要求解的函数变量名
也就是 最后一句
[k,l,c,w,r]=solve(eq1,eq2,eq3,eq4,eq5,'k','l','c','w','r')
但是solve基本是解解析解的,但是不是每个方程都有解析解,就像你的这道,解得时候会出现BUSY,说明可能不存在解析解
再问: 这样也试过,那应该是没解吧。。。谢谢哈
再答: 对,应该是没有解析解。 望采纳