有关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)
试过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,说明可能不存在解析解
再问: 这样也试过,那应该是没解吧。。。谢谢哈
再答: 对,应该是没有解析解。 望采纳
solve在使用时,因为你的表达式里面有符号变量,所以要在最后解方程时注明需要求解的函数变量名
也就是 最后一句
[k,l,c,w,r]=solve(eq1,eq2,eq3,eq4,eq5,'k','l','c','w','r')
但是solve基本是解解析解的,但是不是每个方程都有解析解,就像你的这道,解得时候会出现BUSY,说明可能不存在解析解
再问: 这样也试过,那应该是没解吧。。。谢谢哈
再答: 对,应该是没有解析解。 望采纳
有关MATLAB用solve函数求解非线性方程组的问题
使用matlab中的solve函数求解符号方程组的问题
关于Matlab求解非线性隐式方程组的求解,利用fsolve,solve,或ezplot等自带函数求解,
求教一个用matlab求解二元非线性方程组的问题
MATLAB求解非线性方程组用fsolve函数求解
Matlab中solve解非线性方程组用的是什么算法?能否查看solve的源程序?
Matlab求解非线性方程组
matlab中solve函数求解隐函数的问题
matlab求解含有字母的非线性方程组
用matlab求解非线性耦合微分方程组
关于matlab中solve函数求解方程组的问题,代码如下,而显示结果如图所示,为什么.我用的版本R2013a
非线性函数Matlab求解