作者celestialgod (攸蓝)
看板MATLAB
标题Re: [问题] fsolve 解多元非线性方程组
时间Tue May 12 15:52:00 2015
※ 引述《wen7774 (文...)》之铭言:
: 我尝试用fsolve解多元非线性问题
: 第一次写matlab,参考板上之前的讨论
: 原始题目
: (A-x-y)(B-x-β) = K1(x-α)
: (A-x-y)(C-y-α) = K2(y-β)
: (x-α) (C-y-α) = K3(α+β)
: (y-β)(B-x-β) = K4(α+β)
: Constant: K1.K2.K3.K4
: input : A.B.C
: output: α.β.x.y
create a file to put functions:
=========== prac.m =============
function F = prac(x, A, B, C, K)
F = [(A-x(1)-x(2))*(B-x(1)-x(4))-K(1)*(x(1)-x(3));
(A-x(1)-x(2))*(C-x(2)-x(3))-K(2)*(x(2)-x(4));
(x(1)-x(3))*(C-x(2)-x(3))-K(3)*(x(3)+x(4));
(x(2)-x(3))*(B-x(1)-x(4))-K(4)*(x(3)+x(4));];
end
=================================
solve.m:
A=30;B=20;C=60; %input parameter
K1=2;K2=5.71;K3=3;K4=1.0; %constant
x01 = [1,1,1,1];
fsolve(@(x) prac(x,A,B,C, [K1,K2,K3,K4]),x01)
ans =
10.1211 18.1556 8.6104 8.1256
你也可以把prac.m直接用anonymous function取代 随你
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 123.205.27.107
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/MATLAB/M.1431417122.A.D7A.html
1F:推 wen7774: 非常谢谢 05/14 14:30
2F:推 Willful1: 推 05/15 22:55
3F:推 ryanwang: 推认真... 05/24 15:23
4F:→ ryanwang: solve.m建议取别的名称, 因为内建函式也有solve.m怕混淆 05/24 15:26
5F:→ ryanwang: [X,FVAL,EXITFLAG] = fsolve(省略, 可以看有无找到答案 05/24 15:33