查看: 115|回复: 2|关注: 0

[已解决] 函数中有积分的一些问题

[复制链接]

新手

7 麦片

财富积分


050


2

主题

4

帖子

0

最佳答案
我在做优化的时候遇到一些问题,有些困惑想请教一下大神们,如果我把函数定义为如下形式:
function y=f1(x)
syms t
a=x(1);b=x(2);
y= integral(@(t) (a*sin(t) - b*cos(t)).^2, 0, 20);

然后进行优化:
clear all
fun=@f1;
x0 = [0,0];
[x,fval]=patternsearch(fun,x0)

这样是没有问题的,但是如果改一下形式:

function y=f1(x)
syms t
a=x(1);b=x(2);
F=(a*sin(t) - b*cos(t)).^2;
y= integral(@(t)F, 0, 20);
再进行优化就会报错,以上是我举的简单例子,实际应用中需要积分的式子特别冗长,不可能把里面的参数一个个手动换成x(1)x(2)x(3),刚接触matlab没多久所以想向大神们请教一下。拜托拜托


回复主题 已获打赏: 0 积分

举报

论坛优秀回答者

5

主题

2337

帖子

704

最佳答案
  • 关注者: 196
发表于 6 天前 | 显示全部楼层 |此回复为最佳答案
用matlabFunction函数,写成类似如下形式
  1. function y = f1( x )
  2. syms t
  3. a = x( 1 ); b = x( 2 );
  4. F = ( a * sin( t ) - b * cos( t ) ).^2;
  5. y = integral( matlabFunction( F, 'vars', { t } ), 0, 20, 'ArrayValued', true );
  6. end
复制代码
提问请:①准确描述问题②提出你的思考(等着抄作业的一律锁帖)③提供代码文本而非截图④及时反馈
回复此楼 已获打赏: 0 积分

举报

新手

7 麦片

财富积分


050


2

主题

4

帖子

0

最佳答案
 楼主| 发表于 6 天前 | 显示全部楼层
TouAkira 发表于 2020-6-30 13:08
用matlabFunction函数,写成类似如下形式

非常感谢,我尝试一下
回复此楼 已获打赏: 0 积分

举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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