注册 登录
编程论坛 Matlab

请问这个怎么修改 ?

瘦不了噜er 发布于 2016-07-24 13:49, 3895 次点击
想求出目标函数的最小值 并找到多组符合条件的自变量


程序代码:
a=0.5;1-(x(1)-x(3))>0;
g=9.8;l=15;
k=sqrt(g/l);
N=a/g;
A=-2*N*sin(k/2*x(1));
P=A*sin(k*((60-0.5*x(1)*t3-0.25*x(3)^2-0.25*x(1)^2)/(0.5*x(1)))/2)-N;
Q=0.5^A*cos(k*((60-0.5*x(1)*x(3)-0.25*x(3)^2-0.25*x(1)^2)/(0.5*x(1))/2);
fx=@(x)(P*cos(k*x(3))+Q*sin(k*x(3))+N)^2+(Q*cos(k*x(3)-P*sin(k*x(3)))^2;
[xv,fv]=fminsearch(fx,[0,0])



错误使用 mupadmex
Error in MuPAD command: Index exceeds matrix dimensions.

出错 sym/subsref (line 687)
        B = mupadmex('symobj::subsref',A.s,inds{:});


[此贴子已经被作者于2016-7-24 13:55编辑过]

1 回复
#2
紫色年华2016-07-25 16:40
问题1.请问你代码第一行这句话  1-(x(1)-x(3))>0;  是想实现什么?Matlab里面这种语句单独出现是有问题的吧
问题2.Matlab处理规划问题分线性规划(目标函数和约束条件均为线性),非线性规划(目标函数和约束条件均有一个为非线性)等,而且不  同的类型用的命令也不一样。你这个目标函数一看就是非线性(因为涉及到三角函数)。
你写的这段代码我看不到你的约束条件是什么。

建议用fmincon这个命令,详细用法自己查找一下!
1