Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2013-09-13, 18:55   #1
longking0212
初级会员
 
注册日期: 2013-09-13
年龄: 37
帖子: 1
声望力: 0
longking0212 正向着好的方向发展
帖子 复杂的方程组求解

现在有这样一个方程组需要求解,麻烦各位路过大神提供一下帮助,谢谢!
D=A(α+2δD)^m[3/2(μξ^2)+(3μ+9λ/2)ε^2]^m
其中α+δ=1,还有D,ξ,ε,μ,λ是已知的,求解m,A,α,δ。
已知的数据都各有四组数据,是一个四元方程组。怎么使用Matlab怎么求解,谢谢各位指导指导!
longking0212 当前离线   回复时引用此帖
旧 2013-09-19, 08:56   #2
liuyunfeng
初级会员
 
注册日期: 2013-09-19
帖子: 3
声望力: 0
liuyunfeng 正向着好的方向发展
微笑 回复: 复杂的方程组求解

可以用fsolve解非线性方程组。
需要自建一个M文件,编入方程组。
另外,用fsolve的话,几个未知量就用几个方程组,你的α+δ=1求解时可能用不到,但是可以用来验证结果。
比如你的方程D=A(α+2δD)^m[3/2(μξ^2)+(3μ+9λ/2)ε^2]^m,
将四组已知的D,ξ,ε,μ,λ代入方程,得到4个未知量为m,A,α,δ的方程。
将方程变换为XXX=0的形式,0在左边。
未知量为x矩阵,x实际为[m A α δ],将上面得到的4个方程中的m,A,α,δ替换为x(1)、x(2)、x(3)、x(4),四个方程左边的的0分别替换为y(1)、y(2)、y(3)、y(4)。
这样,新建M文件,写入上面的4个方程:

代码:
function  y=rootegBfun(x)
y(1)=XXX;
y(2)=XXX;
y(3)=XXX;
y(4)=XXX; %其中都已经替换为x(1)、x(2)、x(3)、x(4)的关系。
保存为rootegBfun.m
命令行下,输入:
x0=ones(1,4);%迭代法需要初始值,这里随便设个[1 1 1 1]示意一下,建议要尽量接近真实的[m A α δ]
x=fsolve(@rootegBfun,x0,optimset('Display','off'));
按照上面的,应该可以求出来。
liuyunfeng 当前离线   回复时引用此帖
回复

主题工具
显示模式

发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 03:05


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.