大家看一下这个:function [xmin,funval]=TR(fun,x0,delta0,x)

delta=delta0;

eps=1.0e-4;

n=length(x0);

x0=x0';%x0为列向量

H=eye(n);

mu=0.25;

yita=0.75;

normg=1;

while normg>eps

fx=subs(fun,x,x0);

gradfun=jacobian(fun,x);

g=subs(gradfun,x,x0);%g为行向量

normg=norm(g);

s0=x0';%s0为行向量

[s,fs]=trustP(fun,g,H,delta,x,s0);%s应该为行向量

s=s';%s变为列向量

x1=x0+s;%x1为列向量

fx1=subs(fun,x,x1);

rho=(fx-fx1)/(-fs);

if rho>yita

x0=x0+s;%x0为列向量

else

x0=x0;

end

if rho<=mu

delta=0.5*delta;

else

if rho>=yita

delta=2*delta;

else

delta=delta;

end

end

g1=subs(gradfun,x,x1);%g为行向量1

y=g1-g;%y为行向量

y=y'; %ye为列向量

dyT=y';%dyT为行向量

dsT=s';%dsT为行向量

A=s*dsT;

B=H*y*dyT*H;

a=dsT*y;

b=dyT*H*y;

H=H+A/a+B/b;

end

xmin=x0;

funval=subs(fun,x,xmin)

end

function [s,fs]=trustP(fun,g,H,delta,x,s0)

epsi=1.0e-4;

r0=8;

beta=0.5;

dxT=x';

B1=x*H*dxT;

c=g*dxT;

x0=s0;

fx=subs(fun,x,x0);

sfun=fx+c+B1;%信赖域子问题函数

N=length(x);

qfun=0;

for k=1:N

qfun=qfun+x(k)^2;

end

sqfun=sqrt(qfun);

cfun=delta-sqfun;%罚函数

tol=1;

while tol>epsi

pfun=r0*cfun;

gfun=sfun+pfun;%障碍函数

[s1,sf]=NT(gfun,x,s0)

cf=subs(cfun,x,s1);

tol=r0*cf;

r0=r0*beta;

end

s=s1;

fs=subs(fun,x,s);

end

function [s1,sf]=NT(gfun,x,s0)

eps=1.0e-4;

tol=1;

s0=s0';%s0为列向量

while tol>eps

gradf=jacobian(gfun,x)

jacf=jacobian(gradf,x)

v=subs(gradf,x)

tol=norm(v);

pv=subs(jacf,x,s0

p=-inv(pv)*v';

ss1=s0+p;

s0=ss1;

end

s1=ss1;

sf=subs(fun,x,s1);

end

这三个函数是我自己编写的,但是运行时subs函数会报错!有谁能帮我解决一下!

matlab subs eval,【荐】MATLAB求解符号表达式数值的方法:subs函数相关推荐

  1. 单位斜变函数matlab,实验二 用MATLAB实现线性系统的时域分析

    实验二基于MATLAB的线性系统时域分析 [实验目的] 1.研究线性系统在典型输入信号作用下的暂态响应: 2.熟悉线性系统的暂态性能指标: 3.研究二阶系统重要参数阻尼比ξ对系统动态性能的影响: 4. ...

  2. MATLAB解隐函数方程时符号表达式转化为数值的方法-用vpa函数

    今天在解决一个小问题时,遇到解隐函数方程,中间涉及一个解的传递问题,才好好研究了一下 syms这个语句的一些语法规则,最终用vpa这个函数解决了符号表达式到double数值的转化. syms是符号函数 ...

  3. matlab subs eval,matlab syms subs eval 实例

    clc; close all; clear; syms T; syms t; syms vmax; len = 150; y = vmax*(1 - exp(-t/T)) y2 = vmax y3 = ...

  4. 求解非线性方程f (x)= 0的MATLAB数值法指令介绍(solve、fzero的方法与实例)

    一.符号方程求解 在MATLAB中,求解用符号表达式表示的代数方程可由函数solve实现,其调用格式为:        solve(s)(求解符号表达式s的代数方程,求解变量为默认变量,当方程右端为0 ...

  5. 隐式函数matlab,matlab隐函数求解的几种方法

    1. fzero() 2. fsolve()+ inline() 3. solve() 4. 先求解析解,后用替代法求数值解. A=[sinxcosy, e^siny], B=[siny,1+e^(x ...

  6. matlab多项式加法运算,matlab多项式运算与代数方程求解解析.ppt

    * 多项式运算与代数方程求解 数学软件 Matlab Matlab基础及应用 * 多项式转化为符号表达式:poly2sym 四则运算:conv.deconv 导数与积分:ployder.polyint ...

  7. fick第二定律matlab求解,(最新整理)实验二MATLAB数值计算常微分方程(组)的求解

    <(最新整理)实验二MATLAB数值计算常微分方程(组)的求解>由会员分享,可在线阅读,更多相关<(最新整理)实验二MATLAB数值计算常微分方程(组)的求解(19页珍藏版)> ...

  8. matlab解带参数方程,matlab求解变参数方程

    求解含参数方程组以及带入数值 一.求解含参方程组 举个简单例子,解方程组 x+A*y=10 x-B*y=1? ??其中 x,y 为变量,A,B为字母系数. 只要在 Matlab中...... (三)用 ...

  9. matlab绘制圆,且求解两个圆的交点坐标

    前言 这里简单记录下对于matlab绘制圆,以及求解两圆交点的坐标的实现(包括C++). 一 绘制圆 circle.m文件: function [] = circle(x, y, r, color) ...

  10. matlab微分方程组边值,matlab求解常微分方程边值问题的方法

    matlab求解常微分方程边值问题的方法 Matlab 求解常微分方程边值问题的方法:bvp4c 函数 常微分方程的边值问题,即 boundary value problems ,简称 BVP 问题, ...

最新文章

  1. [FxCop.设计规则]16. 不要在封闭类中声明虚成员
  2. 远程定位gps linux,GPS(NMEA)数据解析
  3. Ubuntu20.04 远程桌面共享vnc
  4. gddr6速率_GDDR6 显存两年后问世:比 GDDR5X 更快,速率可达 16Gbps
  5. VSCode中配置git(参数设置) - 教程篇【不推荐阅读】
  6. mui ajax传参示例
  7. 如何从0开发一个Atom组件
  8. java 是怎么跨平台运行的
  9. 关于个人电脑连不上公司svn服务器,显示拒绝访问的错误
  10. System x服务器使用ServerGuide引导安装Windows Server 2008 R2
  11. Python百钱百鸡问题
  12. 倪光南:友友云计算中间件体现后发优势
  13. 给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false
  14. 如何将JPG转换成PNG格式呢?
  15. 女生做软件测试的利弊如何权衡?
  16. 如何使用Burp suite抓取Fiddler转发的流量包
  17. 校园歌手信息评分系统(C语言),大一新生期末实训
  18. 《极简健康: 4,少烦》 — 刘少
  19. python爬取网抑云歌曲下载
  20. 乐学python公众号_乐的解释|乐的意思|汉典“乐”字的基本解释

热门文章

  1. 查看twitter浏览记录_如何查看Twitter提及的通知,但不喜欢或转发
  2. CM311-1_YST_S905L3(B)_安卓9.0_设置无密码_默认打开adb_完美AI语音_线刷固件包
  3. allegro更新铜皮方法和快捷键
  4. 在excel中批量生成条形码的操作方法?
  5. 计算机其它离的360云盘,360云盘资源转到百度云 360云盘搬家教程
  6. 光学中的几个物理量的意义
  7. 2021年美容师(中级)考试技巧及美容师(中级)试题及解析
  8. 剑斩楼兰的将军之路:多属性决策模型。
  9. arcgis显示后台错误_arcgis desktop遇到严重的应用程序错误,无法继续的解决方案...
  10. QQScLauncher.exe应用程序错误,0xc0000022