方程组m文件如下:
function q=myfunn(p)
a=p(1);
b=p(2);
c=p(3);
d=p(4);
e=p(5);
syms x
q(1)=int(x^1*exp(a*x+b*x^2+c*x^3+d*x^4+e*x^5),x,-3,3)/int(exp(a*x+b*x^2+c*x^3+d*x^4+e*x^5),x,-3,3)+0.0472;
q(2)=int(x^2*exp(a*x+b*x^2+c*x^3+d*x^4+e*x^5),x,-3,3)/int(exp(a*x+b*x^2+c*x^3+d*x^4+e*x^5),x,-3,3)-0.9442;
q(3)=int(x^3*exp(a*x+b*x^2+c*x^3+d*x^4+e*x^5),x,-3,3)/int(exp(a*x+b*x^2+c*x^3+d*x^4+e*x^5),x,-3,3)+0.1419;
q(4)=int(x^4*exp(a*x+b*x^2+c*x^3+d*x^4+e*x^5),x,-3,3)/int(exp(a*x+b*x^2+c*x^3+d*x^4+e*x^5),x,-3,3)-2.5563;
q(5)=int(x^5*exp(a*x+b*x^2+c*x^3+d*x^4+e*x^5),x,-3,3)/int(exp(a*x+b*x^2+c*x^3+d*x^4+e*x^5),x,-3,3)+0.5687;
两个定积分之商等于一个常数,求解
fsolve('myfunn',[10,10,10,10,10]',optimset('Display','off'))
结果显示10个Warning: Explicit integral could not be found.
外加??? Undefined function or method 'full' for input arguments of type 'sym'.
Error in ==> trustnleqn at 28
Fvec = full(Fvec);
Error in ==> fsolve at 378
[x,FVAL,JACOB,EXITFLAG,OUTPUT,msgData]=...
请问这是我写的m文件的问题还是初值的问题还是这道题不能用fsolve?
高手如果觉得讲不清能不能留个q?小辈谢谢了
matlab用fsolve得不到解啊,低手问题
感觉没办法,除非修改matlab源函数把它屏蔽了。。。fsolve得运行停长时间做循环运算的,我觉得它的option不如改成optimset('Display','on')这样你每次循环能看到优化的cost function f(x)的收敛程度 我在主函数用的是fsolve('myfunn',[1,1,1,1,1]',optimset('Display','on'))它会显示这种的:...
matlab,小白想用fsolve解非线性函数总是报错,网上找了好多
若在使用MATLAB的fsolve函数求解非线性函数时遇到错误,可以尝试使用vpasolve函数求得精确解。vpasolve函数相较于fsolve在求解非线性方程组时,能够提供更准确的结果,尽管计算时间可能会稍长。具体求解步骤如下:首先,定义符号变量。对于这个问题,我们需要定义x1,x2,x3,x4,x5,x6,x7为符号变量。然后,...
matlab 用fsolve函数出错,求帮忙解决
1. 先创建一个函数,比如 function F = numel(x)F = [2*x(1) - x(2) - exp(-x(1));-x(1) + 2*x(2) - exp(-x(2))];2. 在主文件中使用fsolve函数求解numel(x)=0的解,单通常会给一个初始值,比如 x0 = [-5; -5]; % 各个变量的初始值,此处为两个变量x1, x2...
matlab用fsolve求解非线性方程组,无法求解……
给你看了,gf是matlab已有的函数名了,可输入help gf 查看,因此你定义了一个和gf函数重名的自己的函数,把gf随便改成另一个名字,如myfun,fsolve里也要改,不要跟matlab内置的函数重名,否则系统不识别哪一个是你想要求解的,这就叫机器与人脑的本质区别,调用结果如下:[xybest,fval]=fsolve('m...
matLab 中用fsolve问题遇到困难,求助!
每次都变化,你就先定义一个 function y = myfun(tao),global p_v p_B delta;...然后在用fsolve调用这个函数的时候,也先定义 global p_v p_B delta;然后再给他们赋值,全局变量,一变全变,函数内部也跟着变。
关于MATLAB中fsolve函数的问题》
m文件修改如下:function a=myfun(x)k=340;r=0.08;t=150\/365;c=29.8299;p=8.8335;a=blsprice(x(1),k,r,t,x(2))-[c,p];这样从语法上来说,不存在错误了;但是运行结果似乎找不到解,这就取决于:①这个模型是否有解,② 你给的初值是否在解的附近。
matlab fsolve解方程结果不对?
首先,我们要确保fsolve函数是否收敛到正确的解。可以通过观察求解过程中的退出标志(exitflag)以及确保使用的初始值是合理的。请在调用fsolve时返回exitflag,如下所示:options = optimoptions('fsolve','Display','iter');[x, fval, exitflag, output] = fsolve(@root8d, x0, options);这里,x0...
Matlab用fsolve求解非线性方程,卡了三四天了跪求帮助
fsolve的初值应该是用向量或者矩阵形式,而你用的元胞数组,可以调整下自己的未知数,将其改写为13乘3的矩阵。
用matlab编程求解方程组
求解方程组的运行结果找不到解的主要问题有:1、用fsolve函数求解的初值问题,解决的方法是通过调整获得。2、求和的问题,在调用myfun(x)时,始终在原地求解当i等于某值时的y值,而没有累加求和。按上述方法,修改后运行可求解得到 x1=-0.78894,x2=0.1253,f1=1.7053e-13,f2=1.6342e-13 ...
用matlab的fsolve解二元方程,但是总是出错,谁能帮我看看哪里出错了吗...
使用fsolve求解方程,未知数不能使用多个变量符号,而是应该把多个未知数写成一个向量。例如,对于你现在的两个问题,应该用x(1)表示x,x(2)表示y:>> f=@(x)[x(1)*2+3*x(2)+1;x(2)*2+4*x(1)+1];>> fsolve(f,[1 1])ans = -0.1250 -0.2500>> fun=@(x)([x(1)...