yqchenlolo 发表于 2008-5-1 21:47

含积分的非线性方程组如何解?

如题
方程组中含有积分式,积分上下限包含待求的变量
这个积分没法求出原函数,

试了用solve貌似不行
请问有什么方法可以解?

用对应的命令么?

谢谢:@)

nonlinear 发表于 2008-5-1 23:14

令积分项为新的状态变量?
不知道有没有一个命令就全部搞定

yqchenlolo 发表于 2008-5-1 23:52

我这样尝试过了,不行
解不出来,不过还是谢谢了,:@D
不知道有没有什么好方法,
网上也没搜到,
希望谁知道的指导一下
谢谢了

sigma665 发表于 2008-5-2 09:25

回复 楼主 的帖子

变上限积分吗

sogooda 发表于 2008-5-2 17:08

建议楼主帖方程吧,因为非线性方程组这种东西本来就是很麻烦的,通用的解法更是难以寻找。如果贴出方程来,或许大家可以根据方程自身的特点把它求解出来。

yqchenlolo 发表于 2008-5-3 09:06

题目如图,要求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 编辑 ]

yqchenlolo 发表于 2008-5-4 18:28

用了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

得不到正确的解,
问题有可能出在哪?
谢谢:@)

tjiang 发表于 2011-5-14 16:21

你好,因为我现在被这个方程的求解所困扰,所以想问问,这个问题你后来解决了没。如果你已得到解决,非常希望能够得到你的回复和解答。谢谢
页: [1]
查看完整版本: 含积分的非线性方程组如何解?