matlab中fsolve函数求解中的一个问题求解方程e^(-(x/a1)^b1)+e^(-(x/a2)^b2)+e^(-(x/a3)^b3)=3*(1-Ft),其中a1,a2,a3为服从均值为4000,方差为1000的正态分布随机值,b1,b2,b3为服从均值为2,方差为0.5的正态分布随机值

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/05 18:14:54
matlab中fsolve函数求解中的一个问题求解方程e^(-(x/a1)^b1)+e^(-(x/a2)^b2)+e^(-(x/a3)^b3)=3*(1-Ft),其中a1,a2,a3为服从均值为4000,方差为1000的正态分布随机值,b1,b2,b3为服从均值为2,方差为0.5的正态分布随机值

matlab中fsolve函数求解中的一个问题求解方程e^(-(x/a1)^b1)+e^(-(x/a2)^b2)+e^(-(x/a3)^b3)=3*(1-Ft),其中a1,a2,a3为服从均值为4000,方差为1000的正态分布随机值,b1,b2,b3为服从均值为2,方差为0.5的正态分布随机值
matlab中fsolve函数求解中的一个问题
求解方程e^(-(x/a1)^b1)+e^(-(x/a2)^b2)+e^(-(x/a3)^b3)=3*(1-Ft),其中a1,a2,a3为服从均值为4000,方差为1000的正态分布随机值,b1,b2,b3为服从均值为2,方差为0.5的正态分布随机值,Ft为[0,1]均匀分布的随机值.我自己编的程序如下:
m文件:
function F = myfun(x)
Ft = rand;
a1 = 3000; a2 = 3500; a3 = 4200; b1 = 2; b2 = 2.5; b3 = 1.8;
F = exp(-(x/a1)^b1)+exp(-(x/a2)^b2)+exp(-(x/a3)^b3)-3*[1-Ft];
主程序:
x0 = 4000;
options=optimset('Display','iter');
[x,fval] = fsolve(@myfun,x0,options)
输出结果始终与x0相同(即x0改变后,输出值都是与x0相同的值),这显然不对,如果将Ft改成[0,1]区间的某一固定值(如:0.2551),则输出不同于x0的初值(这时理论上应该是正确的).
疑问:估计m文件中Ft = rand语句有问题,请高手指点(我所要求的Ft是某一随机值,而不是某一固定值);另外(1)以上程序中a1,a2,a3,b1,b2,b3都已经是固定值,如果要取成服从对应分布的随机值,应该怎么改程序;(2)如果a1,a2,a3,b1,b2,b3都已取成服从对应分布的随机值作为他们的固定值,重复取10个[0,1]区间均匀分布的随机值赋给Ft,计算得到对应10个x值,程序该怎么改?
如有未表述清楚之处,可进一步交流.

matlab中fsolve函数求解中的一个问题求解方程e^(-(x/a1)^b1)+e^(-(x/a2)^b2)+e^(-(x/a3)^b3)=3*(1-Ft),其中a1,a2,a3为服从均值为4000,方差为1000的正态分布随机值,b1,b2,b3为服从均值为2,方差为0.5的正态分布随机值

嗯,确实是你Ft = rand的错误,每次调用函数Ft都改变了.要实现你的要求程序如下:

a = normrnd(4000, sqrt(1000), 1, 3);   % a = [1 2 3];
b = normrnd(2, sqrt(0.5), 1, 3);
f = @(a,b,Ft)fsolve(@(x)sum(exp(-(x./a).^b))-3*(1-Ft), 0, optimset('Display','off'));

x = [];
for Ft = rand(1,10)
\x09x = [x f(a,b,Ft)];
end

至于为什么x总等于 0,不是程序有错,而是a的值总是太大!你可以试试小点的a,比如a = [1 2 3].

Matlab中syms构建函数后用fsolve求解例如:syms xy=x^2-1;fsolve(y,-2)结果报错:Error using ==> lsqfcnchk at 111If FUN is a MATLAB object,it must have an feval method.Error in ==> fsolve at 184funfcn = lsqfcnchk(FUN,'fsolve',length(varar matlab 中fsolve求解非线性方程组可以给定解的区间么 MATLAB中fsolve初值怎么确定?% fsolvef = @(x) x-sqrt(1+x)p = @(x) x^2-x-1x2 = fsolve(f, 1)x3 = fsolve(f, -1)x4 = fsolve(p, 1)x5 = fsolve(p, -1) 用fsolve求解方程,为什么x2初值取1,得到x2 =1.6180No solution found.到底应该怎么取 matlab中fsolve函数求解中的一个问题求解方程e^(-(x/a1)^b1)+e^(-(x/a2)^b2)+e^(-(x/a3)^b3)=3*(1-Ft),其中a1,a2,a3为服从均值为4000,方差为1000的正态分布随机值,b1,b2,b3为服从均值为2,方差为0.5的正态分布随机值 求Matlab大神!我用fsolve函数求解六元非线性方程组,但是方程组中的系数是通过其它函数求出,然后通过全局变量global变量传递过来的,经验证,我所求的系数确实传递到这个函数中了,但是调用fsol 在MATLAB中科学计数法怎么算值?fval=1.0e-006*-0.4059;的具体值是多少(来之help fsolve中的例一) 求Matlab高手帮我解答!我用fsolve函数求解非线性方程组,但是方程组中的系数我是通过另一个程序求出的,我现在不知道如何将求得的系数传送到function函数中,尽量说明得清楚些, matlab怎么用fsolve函数解非线性方程组? matlab中fsolve可否用来解四元非线性方程组?急! 关于Matlab求解非线性隐式方程组的求解,利用fsolve,solve,或ezplot等自带函数求解,想直接求解x*y=4;x^y=4;的解,我用一下方法及fsolve函数发现求不出来,但是试了其他简单的方程就可以求出来.以下是 MATLAB求解非线性方程组用fsolve函数求解建立函数文件fxyz.mfunction F=fxyz(X)x=X(1);y=X(2);z=X(3);F(1)=x^2+y^2+z^2;F(2)=3*x+5*y+6*z;F(3)=x-3*y-6*z-1;给定初值[-1,1,-1],调用fsolve函数求方程的根X1=fsolve('fxyz',[-1,1,-1]',op Matlab求解隐函数的问题直接用fsolve求解的话,我现在写了个函数,但是老是出现:Equation solved.fsolve completed because the vector of function values is near zeroas measured by the default value of the function tolerance, and Matlab问题:请教fsolve求解非线性方程问题现在我想求解一个非线性方程,函数get3dfun定义如下:function [f_total]=get3dfun(xyz,M,N)%其中xyz是8X3的矩阵,M、N均为3x5的矩阵,他们均为未知数.xyz_final=fsolve(@g matlab 用fsolve解方程组的问题我需要解一个方程组,编了一个cs.m函数文件,然后通过fsolve('cs',[1,1,1,1,1])语句求解,可是总是提示出错,不知道错在哪了,cs.m函数文件代码如下:function f=cs(uu)b1=uu(1);b2= MATLAB中求解矩阵固有频率的函数名称 求助Matlab中求解特征根的函数 Matlab中使用fsolve函数解方程,我几乎照搬课本上的例子敲了下面的程序:但一直提示错误.程序:function F = myfunn(x)F = [2*x(1)-x(2)-exp(-x(1));-x(1)+2*x(2)-exp(-x(2))];然后保存为myfunn.m文件,然后又建了一 matlab中怎么查看工具箱中的函数