对分法的实施

3视图(30天)
伊万•德•法齐奥
伊万•德•法齐奥 2022年11月5日
编辑: Torsten 2022年11月5日
大家好!
我想使用 对分法 发现V值,这将使我的设置函数等于零(V_ls)。
func = @ (V) -Pstar + (R * T * (((1 - c) / V) - ((c / b) *日志(1 b / V)))——* c / V ^ 2)
请注意, a, b, c, R 保留总是相同的值,使我的方程组的区别是Pstar的价值观,T,将确定V值,我正在找。
我成功地管理这个过程对于一个给定的函数,通过设置Pstar和T的值。
我想能够自动重复这个过程不同的Pstar和T值存储在一个向量。
Pstar = Pstars(我)
T = temp(我)
%我有30的价值观(的问题)在每个向量,即i = 30
%范围值,可以找到解决方案。
V = 0.0320;
lim_max = 0.1951;
%对分法
number_iterations = 100%我可以任意设置这个值
我= 1:number_iterations
Vls = (V + lim_max) / 2;
如果有趣(Vls) < 0
lim_max = Vls;
其他的
V = Vls;
结束
结束
我想我应该把这个轮轴成一个新的,但是我真的不能设法得到我想要的结果:
一个输出向量V_ls包含每个解决方案的对分法为每个30方程。
很多谢谢!
4评论
伊万•德•法齐奥
伊万•德•法齐奥 2022年11月5日
编辑:伊万•德•法齐奥 2022年11月5日
谢谢你的帮助和耐心。
这是我的代码在一个迭代工作:
清晰的所有;
关闭所有;
clc;
%固定输入
c = 25.8972;
b = 0.0320;
一个= 0.7535;
R = 0.0821;
Vc = 0.1951;
%选择几个T-Pstar
T = 385.15;
Pstar = 36.6133;
有趣= @ (V) -Pstar + (R * T * (((1 - c) / V) - ((c / b) *日志(1 b / V)))——* c / V ^ 2);
n = 100;
V = b;
limmax =风险;
i = 1: n
Vls = (V + limmax) / 2;
如果有趣(Vls) < 0
limmax = Vls;
其他的
V = Vls;
结束
结束
索尔= Vls;
disp (sol)
0.1038
我试过了一个多小时创建一个函数就像你说的,但它使给我相同的结果。
我一直坚持这几天。
再次感谢

登录置评。

接受的答案

Torsten
Torsten 2022年11月5日
编辑:Torsten 2022年11月5日
%固定输入
c = 25.8972;
b = 0.0320;
一个= 0.7535;
R = 0.0821;
Vc = 0.1951;
% 30生成人工(Pstar T)对测试
Pstar_array = 36.6133 * (1.05)。^ (1:30);
T_array = 385.15 + (1:30);
%叫二分30 (Pstar T)对
i = 1:元素个数(T_array)
Pstar = Pstar_array(我);
T = T_array(我);
有趣= @ (V) -Pstar + (R * T * (((1 - c) / V) - ((c / b) *日志(1 b / V)))——* c / V ^ 2);
V (i) =二等分(有趣,b, Vc);
错误(我)=乐趣(V (i));
结束
图(1)
情节(1:30,V)
图(2)
情节(1:30,错误)
函数索尔=二等分(有趣,V0, Vc)
n = 100;
V =半;
limmax =风险;
i = 1: n
Vls = (V + limmax) / 2;
如果有趣(Vls) < 0
limmax = Vls;
其他的
V = Vls;
结束
结束
索尔= Vls;
结束

更多的答案(0)

类别

找到更多的在循环和条件语句帮助中心文件交换

s manbetx 845


释放

R2022b

社区寻宝

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

开始狩猎!