matlab解带参数的积分方程组,方程组求解问题:方程组中有带参数的积分函数,求参数...
吴老师,您好!请教您一个问题。
我想求下面方程组的解:
quadl(@(x) exp(a(1)+a(2)*x+a(3)*x.^2+a(4)*x.^3+a(5)*x.^4),-100,100)-1;
quadl(@(x) x.*exp(a(1)+a(2)*x+a(3)*x.^2+a(4)*x.^3+a(5)*x.^4),-100,100)-m1;
quadl(@(x) x.^2.*exp(a(1)+a(2)*x+a(3)*x.^2+a(4)*x.^3+a(5)*x.^4),-100,100)-m2;
quadl(@(x) x.^3.*exp(a(1)+a(2)*x+a(3)*x.^2+a(4)*x.^3+a(5)*x.^4),-100,100)-m3;
quadl(@(x) x.^4.*exp(a(1)+a(2)*x+a(3)*x.^2+a(4)*x.^3+a(5)*x.^4),-100,100)-m4;
其中m1=0.0177;m2=1.0494;m3=0.0448;m4=3.4693;
(积分上下限本来是正负无穷大,这里用足够大的数代替的)
要求a参数的值,我写了以下的代码求解:
function l=shuju()
a0=[0,0,0,-0.002,-0.000207];
[a,fvar]=fsolve(@f,a0);
function F=f(a)
m1=0.0177;
m2=1.0494;
m3=0.0448;
m4=3.4693;
F=[quadl(@(x)exp(a(1)+a(2)*x+a(3)*x.^2+a(4)*x.^3+a(5)*x.^4),-100,100)-1;
quadl(@(x)x.*exp(a(1)+a(2)*x+a(3)*x.^2+a(4)*x.^3+a(5)*x.^4),-100,100)-m1;
quadl(@(x)x.^2.*exp(a(1)+a(2)*x+a(3)*x.^2+a(4)*x.^3+a(5)*x.^4),-100,100)-m2;
quadl(@(x)x.^3.*exp(a(1)+a(2)*x+a(3)*x.^2+a(4)*x.^3+a(5)*x.^4),-100,100)-m3;
quadl(@(x)x.^4.*exp(a(1)+a(2)*x+a(3)*x.^2+a(4)*x.^3+a(5)*x.^4),-100,100)-m4];
end
a
fvar
end
但是运行出来的结果一直不是很正确,可能是问题非常依赖与初值的选取吧,会出现:
Maximum function count exceeded; singularity likely.
或者:Optimizer appears to be converging to a minimum that is not a root:
Sum of squares of the function values is > sqrt(options.TolFun).
Try again with a new starting point.
而且改变上下限积分后经常会出现积分为零的情况。
不知道吴老师对于这种问题有没有什么好的建议或者经验。是不是只能通过改变初值来进行试探的求解?或者是不是有更好的方法或者函数可以使用,不知道quadl是不是适合这种问题。
我把方程组转换为优化问题求解,目标函数设定为五个方程的平方和,然后用fmincon求解,出来结果显示:
Optimization terminated: first-order optimality relative error
less than options.TolFun, and relative constraint violation less
than options.TolCon.
但是不论我怎么减小TolFun的值,最后的函数值还是很大,没有收敛。优化方法采用内点法和Active-set方法都是这样。
如果老师有什么建议或者好的想法情不吝赐教,非常感谢!
matlab解带参数的积分方程组,方程组求解问题:方程组中有带参数的积分函数,求参数...相关推荐
- python自定义函数参数_python自定义函数的参数之四种表现形式
(1)def a(x,y):print x,y 这是最常见的定义方式,调用该函数,a(1,2)则x取1,y取2,形参与实参相对应,如果a(1)或者a(1,2,3)则会报错 (2)def a(x,y=3 ...
- C++ main函数中参数argc和argv
argc 是 argument count的缩写,表示传入main函数的参数个数: argv 是 argument vector的缩写,表示传入main函数的参数序列或指针,并且第一个参数argv[0 ...
- 数组作为函数的参数传参时,数组名会退化为指针
1.数组作为函数的参数传参时,数组名会退化为指针 数组作为函数的参数传参时,数组名会退化为指针,数值传参时,需要把数值的长度一起传过去,另外,sizeof()运算符包含字符串的哨兵'/0',而strl ...
- Button中command后面函数添加参数解决方法
Button中command后面函数添加参数解决方法 参考文章: (1)Button中command后面函数添加参数解决方法 (2)https://www.cnblogs.com/smart-ziha ...
- 【C/C++】main函数之参数argc和argv含义及用法
初识argc和argv,对其用法甚是困惑,偶得大神"-牧野-"之总结,犹如醍醐灌顶,故转载分享如下,供更多博友学习. argc 是 argument count的缩写,表示传入ma ...
- (转)C++ main函数中参数argc和argv含义及用法
原博地址:https://blog.csdn.net/dcrmg/article/details/51987413 argc 是 argument count的缩写,表示传入main函数的参数个数: ...
- matlab中solve解方程,matlab解方程组.我的每一个方程都很长,如果用solve,solve里的参数就会很长.有什么办法呢?...
问题描述: matlab解方程组.我的每一个方程都很长,如果用solve,solve里的参数就会很长.有什么办法呢? s= (((22*r)/5 - 479/50)*(7*r^2 + (149*r)/ ...
- matlab解含字母方程,求助关于解含字母参数方程组的问题
我现在需要解一个含字母的方程组,写的代码为 [x,y]=solve('lac*cos(a0-a1)+lab*cos(a2)-lcd-lbd*cos(a3)','lac*sin(a0-a1)+lab*s ...
- matlab 解方程组_一文读懂MATLAB微分方程
此教程说明如何使用 MATLAB 构造几种不同类型的微分方程并求解.MATLAB 提供了多种数值算法来求解各种微分方程: 初始值问题 边界值问题 时滞微分方程 偏微分方程 初始值问题 vanderpo ...
- 如何用matlab解异或方程,Matlab-6:解非线性方程组newton迭代法
函数文件: function x=newton_Iterative_method(f,n,Initial) x0=Initial; tol=1e-11; x1=x0-Jacobian(f,n,x0)\ ...
最新文章
- 计算机dns没有响应如何解决方案,dns未响应如何解决 dns未响应解决方法【图文】...
- 岗位内推 | 腾讯云小微自然语言技术中心招聘NLP研究型实习生
- Linux内核出错的栈打印详解,linux内核中打印栈回溯信息 - dump_stack()函数分析
- 文件服务器+好处,文件服务器 好处
- 7-84 点赞狂魔 (25 分)
- 韩顺平php视频笔记69 静态变量与静态方法
- Java锁示例– ReentrantLock
- AV_PIX_FMT_YUV420P12LE’在此作用域中尚未声明
- 面试不再尬聊的Mysql数据库优化方案
- 什么是悬赏任务APP源码?
- python中grid是什么意思_python中网格Grid和列表List的认识
- 千钧一发之际赢得暂缓令,苹果App Store要反败为胜了?
- 微信开发者工具-真机调试,可查看接口信息
- android 画板功能
- [开发工具]记录MPLAB新老双IDE与C18编译器配置
- IDEA配置关联Git
- Minecraft神奇玩家不用键盘,行走全部靠骑猪最后通关MC
- std::thread介绍
- WordPress个人资料中直接修改用户名插件Username Changer
- 【stm32】手把手用cubemx配置血氧传感器(MAX30102)
热门文章
- android xml 解析
- android 日期选择器
- mysql coalesce函数用法_MySQL coalesce函数用法说明(转)
- SQL Server 日志清理、数据文件收缩
- Idea创建web项目,配置tomcat服务器
- js对html节点的操作
- c command语言学例子,乔姆斯基语言学理论发展史研究
- Linux下安装和配置solr/tomcat/IK分词器 详细实例二.
- 2019 徐州icpc网络赛 E. XKC's basketball team
- BZOJ 3456: 城市规划(dp+多项式求逆)