非线性规划求解

1视图(30天)
JuiChun林
JuiChun林 2018年6月4日
评论道: 明星黾 2018年6月5日
我有一个方程 我= * exp (F - c * * E / (R * T)) + b * exp (F - d * * E / (R * T)) *大胆 我解决了a, b, c和d。常数F = 96485, T = 298, R = 8.314。我试图找到a, b, c和d, E和我的价值。我如何设置它在MATLAB ?我试着用fsolve但是有一个错误。

接受的答案

明星黾
明星黾 2018年6月4日
这是否你想要做什么:
F = 96485;
T = 298;
R = 8.314;
我% % % = * exp (F - c * * E / (R * T)) + b * exp (F - d * * E / (R * T));%原方程
% % % = p (1), b = p (2), c = p (3), d = p(4) %定义参数
fcn = @ (p, E i) p (1)。* exp (F - p (3) * * E / (R * T)) + p (2)。* exp (F - p (4) * * E / (R * T))——我;
E = 42;%使用正确的值
我= 24;%使用正确的值
p0 =兰德(4,1)* 1 e-6;
[Params, fval] = fsolve (@ (p) fcn (p, E,我),p0)
如果你有向量的值 “E” “我” ,使用一个嵌套循环遍历:
E = (];
i = [];
k1 = 1:元素个数(E)
k2 = 1:元素个数(我);
参数{k1, k2} = fsolve (@ (p) fcn (p, E (k1),我(k2)), p0);
结束
结束
6个评论
明星黾
明星黾 2018年6月5日
当我测试你的函数,原来是最好的大小范围。使用任何你想要的值。

登录置评。

更多的答案(0)

类别

找到更多的在和迭代解算器输出显示帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!