2013-11-15 123 views
0

帮助。我正在尝试在MATLAB中解决这个非线性方程组的系统作业。我已经尝试过wolfram alpha,并且这个online equation solver,他们都没有工作。解非线性方程组

我试过我的图形计算器,它一直说非代数变量或表达式。

这是我的两个方程两个未知数:

.75*(1100)= x*10^(6.82485-943.453/(T+239.711)) 

25*1100=(1-x)*10^(6.88555-1175.817/(T+224.887) 

我不太了解如何使用MATLAB来解决这个系统。请帮忙。

回答

2

您想在Matlab中使用fsolve函数。定义一个在解决方案处返回[0,0]的函数myfun,然后运行fsolve(myfun,x0)。 x0是解决方案的猜测。

定义myfun:

function F = myfun(x) 
F = [<put modified eqt1 here>; 
<put modified eqt2 here>;]; 

保存它。然后解决:

x0 = [1,1];  
options = optimoptions('fsolve','Display','iter'); 
[x,fval] = fsolve(@myfun,x0,options) % Call solver 
+0

为了详细说明这个答案,你的函数或许应该是这样的: '函数y = my_fun(x)的 Y(1)= X(1)×10 ^(6.82485- 943.453 /(x(2)+239.711)) - 0.75 * 1100; Y(2)=(1-x(1))* 10 ^(6.88555-1175.817 /(X(2)224.887) - 25 * 1100; end' 详情,请参见文档'fsolve':http://www.mathworks.co.uk/help/optim/ug/fsolve.html你需要优化工具箱 – am304

+0

+1回答这个问题,仍然留下一些OP做(imo,因为这是一项任务,这是最好的回答方式) –