含积分的非线性方程组如何解?
如题方程组中含有积分式,积分上下限包含待求的变量
这个积分没法求出原函数,
试了用solve貌似不行
请问有什么方法可以解?
用对应的命令么?
谢谢:@) 令积分项为新的状态变量?
不知道有没有一个命令就全部搞定 我这样尝试过了,不行
解不出来,不过还是谢谢了,:@D
不知道有没有什么好方法,
网上也没搜到,
希望谁知道的指导一下
谢谢了
回复 楼主 的帖子
变上限积分吗 建议楼主帖方程吧,因为非线性方程组这种东西本来就是很麻烦的,通用的解法更是难以寻找。如果贴出方程来,或许大家可以根据方程自身的特点把它求解出来。 题目如图,要求A和sigmaA,我把d1和d2也当成变量,然后解含4个变量A、sigmaA、d1、d2的方程组,代码如下
r = 3.66/100; T = 1; E = 1514805.9; DPT = 527691.645; sigmaE = 0.195995;
for k = 1:length(E)
f1 = ['/(sigmaA*' num2str(sqrt(T)) ')-d1=0'];
f2 = ['d1-sigmaA*' num2str(sqrt(T)) '-d2=0'];
f3 = ['A*normcdf(d1,0,1)-' num2str(DPT(k)) '*exp(-' num2str(r) '*' num2str(T) ')*normcdf(d2,0,1)-' num2str(E(k)) '=0'];
f4 = ['A/' num2str(E(k)) '*normcdf(d1,0,1)*sigmaA - ' num2str(sigmaE(k)) '=0'];
= solve(f1,f2,f3,f4,'d1,d2,A,sigmaA'), pause
end
求解的结果如下:
Warning: Explicit solution could not be found.
> In D:\MATLAB6p5\toolbox\symbolic\solve.m at line 136
In d:\MATLAB6p5\work\shenjian\data\data.m at line 73
d1 =
[ empty sym ]
d2 =
[]
A =
[]
sigmaA =
[]
请各位高手指教,谢谢,:@D
[ 本帖最后由 ChaChing 于 2010-7-30 14:30 编辑 ] 用了fsolve命令来求解数值解,结果也不对,
不知道有哪里需要改正的,请高手指教,谢谢,文件内容如下
function v = equation_group(x)
global E;
global DPT;
global sigmaE;
global r;
global T;
global k;
f1 = (log(x(3)/DPT(k))+(r+0.5*x(4)^2)*T)/(x(4)*sqrt(T)) - x(1);
f2 = x(1) - x(4)/sqrt(T) - x(2);
f3 = x(3)*normcdf(x(1),0,1) - DPT(k)*exp(-r*T)*normcdf(x(2),0,1) - E(k);
f4 = x(3)/E(k)*normcdf(x(1),0,1)*x(4) - sigmaE(k);
v = ;
%data.m
global E;
global DPT;
global sigmaE;
global r;
global T;
global k;
E=1514805.9;
DPT =527691.645;
sigmaE=0.195995;
r = 3.66/100;
T = 1;
k = 1;
x0 = ;
options = optimset('MaxFunEvals',100000,'LargeScale','on');
= fsolve(@equation_group, x0,options)
运行结果如下:
>> data
Maximum number of iterations exceeded;
increase options.MaxIter
x =
1.0e+006 *
0.0000 -0.0000 1.5189 0.0000
fval =
-1.2285
2.6017
-0.0691
2.8785
exitflag =
0
得不到正确的解,
问题有可能出在哪?
谢谢:@) 你好,因为我现在被这个方程的求解所困扰,所以想问问,这个问题你后来解决了没。如果你已得到解决,非常希望能够得到你的回复和解答。谢谢
页:
[1]