【发布时间】:2018-03-19 21:56:35
【问题描述】:
我有一个带有常数“X”的非线性方程。 我想获得 10 个不同“X”值的方程的解。 在 MATLAB 中最好的方法是什么?
使用 fsolve,我想使用一个运行 10 次的循环来执行此操作。但问题是不可能将“X”的值作为参数发送给 fsolve 调用的函数(根据其语法,fsolve 只能发送初始猜测值)并且包含非线性方程.
这是我的 MATLAB 代码:
function f = crd(m)
X=0.1; %Paramter for whose different values I want to solve the NLE using a loop
t=(1/(0.8/3600))*log(1/(1-X));
U=350; P=0.1134; T=165; L=21.415; %Constants
a=0.00102*820*2200/(U*P); %Constant
Q=(0.8/3600)*900*exp(-(0.8/3600)*t)*0.9964*(347.3*1000);
Tmi=60; %Constant
b=m*2200;
q=(a/t)+(b/L);
f = ( b - (Q/(T-Tmi)) ) * (b/(L*L*q*q)) - exp(-1/q);
end
每次更改参数“X”的值,我可以多次使用命令行窗口中的“fsolve(@crd,10)”。但我想使用循环来做到这一点。 我想得到 X=0.1,0.2,...,0.9,1.0 的解决方案
【问题讨论】:
-
你能分享方程和你的代码吗?
-
@Aziz,我已经编辑了我的问题并在那里添加了代码。
标签: matlab