请高手帮我看一下我的matlab程序错在哪里了? min (1000-x(1)^2-2*x(2)^2-x(3)^2-x(1)*x(2)-x(1)*x(3))

请高手帮我看一下我的matlab程序错在哪里了? min (1000-x(1)^2-2*x(2)^2-x(3)^2-x(1)*x(2)-x(1)*x(3)),第1张

1 新建m文件把function y=opt_funl(x)贴进去保存;

2 新建m文件把

function [c,ceq]=opt_conl(x)

ceq=[x(1)*x(1)+x(2)*x(2)+x(3)*x(3)-25]%%去掉第二个式子,那是线性的,不是非线性的

c=[]

贴进去保存,ceq是非线性等式约束,楼主的第二个式子是线性的。

3 在command window里输入

>>options=optimset('LargeScale','off','Display','iter','TolFun',1e-30,'TolX',1e-15,'TolCon',1e-20)

x0=[111]lb=[000]Aeq=[8 14 7]Beq=[56]%%线性等式约束用Aeq和beq

[x,f_opt,c,d]=fmincon('opt_funl',x0,[],[],[8 14 7],[56],[000],[],'opt_conl',options)

max Directional First-order

Iter F-countf(x) constraintStep-size derivative optimality Procedure

0 4 994 27 Infeasible start point

1 10 955.336 22.9 0.25 -295 18.3 infeasible

2 14 964.0125.77310.811 6.26 Hessian modified

3 18 967.157 0.52421 2.83 4.27 Hessian modified

4 22 965.898 0.20111-1.38 3.67

5 26 957.1783.8861 -110.251

6 30 961.697 0.20391 4.24 1.59

7 34 961.564 0.14161 -0.196 1.63

8 38 961.679 0.029871 0.1 0.0113

9 42 961.715 1.734e-0051 0.03650.002

10 46 961.715 9.332e-01112.12e-005 0.000116 Hessian modified twice

11 50 961.7152.56e-0091 -5.53e-0093.51e-005 Hessian modified

12 54 961.715 6.622e-01112.95e-0092.67e-006 Hessian modified

13 58 961.715 5.947e-01217.25e-0117.69e-006 Hessian modified

14 62 961.715 1.357e-0121 1.4e-0123.45e-006 Hessian modified

15 72 961.715 1.386e-012 0.0156 1.3e-0112.55e-005 Hessian modified

16 76 961.715 3.553e-01511.84e-0123.54e-006 Hessian modified

17 81 961.7150 0.5 -1.55e-0146.49e-007 Hessian modified

18 85 961.715 7.105e-0151 -5.16e-015 8e-006 Hessian modified

19 89 961.715017.06e-0158.32e-006 Hessian modified twice

20 93 961.715018.83e-0196.51e-006 Hessian modified twice

21 97 961.71501 -6.05e-0281.33e-006 Hessian modified twice

Optimization terminated: magnitude of search direction less than 2*options.TolX

and maximum constraint violation is less than options.TolCon.

No active inequalities.

x =

3.5121

0.2170

3.5522

f_opt =

961.7152

c =

4

d =

iterations: 21

funcCount: 97

stepsize: 1

algorithm: 'medium-scale: SQP, Quasi-Newton, line-search'

firstorderopt: 1.3292e-006

cgiterations: []

message: [1x142 char]

一、在MATLAB中用square函数来表示,其调用形式为 y=square(t,DUTY) ,其作用类似于sin(t),用以产生一个时长为t、幅值为±1的周期性方波信号,其中的DUTY参数表示占空比,即在信号的一个周期中正值所占的百分比。例如频率为30Hz的周期性方波信号的MATLAB程序图形如下:

1、在MATLAB的命令框内输入方波程序,如下图所示:

2、在输入完成图形显示函数plot后,会显示出来图形,grid,ylim意思是对图形显示的y坐标进行限制。该程序是将图形y坐标限制在(-1.5,1.5)。

二、y=square(t,DUTY) 函数默认的幅值是±1,想要改变幅值,只需要乘以一个系数即可,改变周期的话,将频率30改成其他即可。如y=2*square(t,DUTY)。程序和图形如下图所示:

扩展资料:

MATLAB系统由MATLAB开发环境、MATLAB数学函数库、MATLAB语言、MATLAB图形处理系统和MATLAB应用程序接口(API)五大部分构成。

1、开发环境

MATLAB开发环境是一套方便用户使用的MATLAB函数和文件工具集,其中许多工具是图形化用户接口。它是一个集成的 用户工作空间,允许用户输入输出数据,并提供了M文件的集成编译和调试环境,包括MATLAB桌面、命令窗口、M文件编辑调试器、MATLAB工作空间和在线帮助文档。

2、数学函数

MATLAB数学函数库包括了大量的计算算法。从基本算法如四则运算、三角函数,到复杂算法如矩阵求逆、快速傅里叶变换等。

3、语言

MATLAB语言是一种高级的基于矩阵/数组的语言,它有程序流控制、函数、数据结构、输入/输出和面向对象编程等特色。用这种语言能够方便快捷建立起简单运行快的程序,也能建立复杂的程序。

4、图形处理

图形处理系统使得MATLAB能方便的图形化显示向量和矩阵,而且能对图形添加标注和打印。它包括强大的二维三维图形函数、图像处理和动画显示等函数。

5、程序接口

MATLAB应用程序接口(API)是一个使MATLAB语言能与C、Fortran等其它高级编程语言进行交互的函数库。该函数库的函数通过调用动态链接库(DLL)实现与MATLAB文件的数据交换,其主要功能包括在MATLAB中调用C和Fortran程序,以及在MATLAB与其它应用程序间建立客户、服务器关系。

参考资料来源:百度百科-MATLAB


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7951078.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-11
下一篇 2023-04-11

发表评论

登录后才能评论

评论列表(0条)

保存