查看: 591|回复: 6|关注: 0

[已答复] 如何用matlab求解积分方程组的参数

[复制链接]

新手

5 麦片

财富积分


050


1

主题

4

帖子

0

最佳答案
发表于 2019-3-15 21:12:26 | 显示全部楼层 |阅读模式
本帖最后由 zhangxiaoqi 于 2019-3-15 21:26 编辑

问题如图所示,已知方程组里含有两个积分函数,求方程组中的参数。求大神解答,不胜感谢! 微信图片_20190315210527.jpg

尝试了一些程序,总是提示各种错误,用是用fslove函数吗?
  1. K=@(a,g)2*a*g*(1-g*g)^(2*a)/((1+g)^(2*a)-(1-g)^(2*a));  %%GK函数a,g和K的关系
  2. fun7=@(a,g,x)K(a,g)/((1+g*g-2*g*cos(x))^(1+a));   %%GK函数
  3. fun8=@(a,g,x)fun7(a,g,x)*sin(x)*cos(x);
  4. fun9=@(a,g,x)fun7(a,g,x)*sin(x)*(3/2*(cos(x)^2)-1/2);
  5. fun10=@(a,g)int(@(x)fun8(a,g,x),0,pi)-0.9;
  6. fun11=@(a,g)int(@(x)fun9(a,g,x),0,pi)-0.18;
  7. fun=@(x)[fun10(x(1),x(2));fun11(x(1),x(2))];
  8. [a,g]=fsolve(fun,[1;1]);
复制代码



错误提示:未定义与 'function_handle' 类型的输入参数相对应的函数 'int'。

论坛优秀回答者

中级

932 麦片

财富积分


5001500


0

主题

2357

帖子

202

最佳答案
  • 关注者: 134
发表于 2019-3-16 11:13:25 | 显示全部楼层
只有近似解吧:
a: -5.4566161137207
g: -0.999996935511948

新手

5 麦片

财富积分


050


1

主题

4

帖子

0

最佳答案
 楼主| 发表于 2019-3-16 11:34:13 | 显示全部楼层
本帖最后由 zhangxiaoqi 于 2019-3-16 11:35 编辑
shihe 发表于 2019-3-16 11:13
只有近似解吧:
a: -5.4566161137207
g: -0.999996935511948

请问是怎么求出来的,g理论上是大于0的,程序怎么改?还请指教。

论坛优秀回答者

入门

154 麦片

财富积分


50500


0

主题

373

帖子

33

最佳答案
  • 关注者: 8
发表于 2019-3-18 22:38:17 | 显示全部楼层
x =

  395.3900    0.0040


fval =

   -0.2138    0.1669
误差还是有点大

新手

5 麦片

财富积分


050


1

主题

4

帖子

0

最佳答案
 楼主| 发表于 2019-3-20 17:44:19 | 显示全部楼层
wjb986555360 发表于 2019-3-18 22:38
x =

  395.3900    0.0040

请问是怎么求出来的,理论上a=0.5,g=0.9。程序怎么改?还请指教。

论坛优秀回答者

权威

3453 麦片

财富积分



2

主题

3691

帖子

774

最佳答案
  • 关注者: 159
发表于 2019-3-20 21:18:54 | 显示全部楼层
本帖最后由 maple1314168 于 2019-3-20 21:19 编辑
zhangxiaoqi 发表于 2019-3-20 17:44
请问是怎么求出来的,理论上a=0.5,g=0.9。程序怎么改?还请指教。
0.81,不是0.18
  1. K=@(a,g)2*a.*g.*(1-g.*g).^(2*a)./((1+g).^(2*a)-(1-g).^(2*a));  %%GK函数a,g和K的关系
  2. fun7=@(a,g,x)K(a,g)./((1+g.*g-2*g.*cos(x)).^(1+a));   %%GK函数
  3. fun8=@(a,g,x)fun7(a,g,x).*sin(x).*cos(x);
  4. fun9=@(a,g,x)fun7(a,g,x).*sin(x).*(3/2*(cos(x).^2)-1/2);
  5. fun10=@(a,g)integral(@(x)fun8(a,g,x),0,pi)-0.9;
  6. fun11=@(a,g)integral(@(x)fun9(a,g,x),0,pi)-0.81;
  7. fun=@(x)[fun10(x(1),x(2));fun11(x(1),x(2))];
  8. [x,fval]=fsolve(fun,rand(2,1));
复制代码
x =
    0.5000
    0.9000

fval =
   1.0e-09 *
   -0.1746
   -0.2214

新手

5 麦片

财富积分


050


1

主题

4

帖子

0

最佳答案
 楼主| 发表于 2019-3-22 10:25:19 | 显示全部楼层
maple1314168 发表于 2019-3-20 21:18
0.81,不是0.18
x =
    0.5000

试过了,解出来了,太感谢了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

快速回复 返回顶部 返回列表