T = linspace(tmin,tmax,doc); dt = T(2)-T(1); for i = 1:doc result_p(i) = P0; p = P0; eqn = dp/p-aerfa*( beita*m*( E*p-huibig*Pf )*(i0+d)/p/(-fai*theta-(w1-w2)*E-log(n)+i0*beita+d*beita)... ==0; temp_dp = solve(eqn,dp) ; temp_dp = double( temp_dp ); temp_dp = ( min( real(temp_dp) ) ); dp1(i) = temp_dp; P0 = P0 + temp_dp*dt; disp(["计算中...",string(i/doc*100)," %"]); end怎么改变t=5时,i的值
时间: 2023-12-17 09:05:35 浏览: 111
要改变t=5时,i的值,你需要重新计算T向量。假设你想要i=5时对应的时间是t_new,你可以按照以下步骤进行:
1. 计算出原始T向量中每个元素表示的时间间隔:dt = T(2) - T(1)。
2. 计算出i=5时对应的时间:t_new = T(1) + (5 - 1)*dt。
3. 重新生成T向量:T = linspace(tmin, tmax, doc)。
4. 找到t_new在T向量中的位置:idx = find(T == t_new)。
5. 将for循环的起始点改为i = idx。
修改后的代码如下:
```
dt = T(2) - T(1);
t_new = T(1) + (5 - 1)*dt;
T = linspace(tmin, tmax, doc);
idx = find(T == t_new);
for i = idx:doc
result_p(i) = P0;
p = P0;
eqn = dp/p - aerfa*(beita*m*(E*p - huibig*Pf)*(i0 + d)/p/(-fai*theta - (w1-w2)*E - log(n) + i0*beita + d*beita)) == 0;
temp_dp = solve(eqn, dp);
temp_dp = double(temp_dp);
temp_dp = min(real(temp_dp));
dp1(i) = temp_dp;
P0 = P0 + temp_dp * dt;
disp(["计算中...", string(i/doc*100), " %"]);
end
```
阅读全文