matlab subs eval,【荐】MATLAB求解符号表达式数值的方法:subs函数
大家看一下这个: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函数相关推荐
- 单位斜变函数matlab,实验二 用MATLAB实现线性系统的时域分析
实验二基于MATLAB的线性系统时域分析 [实验目的] 1.研究线性系统在典型输入信号作用下的暂态响应: 2.熟悉线性系统的暂态性能指标: 3.研究二阶系统重要参数阻尼比ξ对系统动态性能的影响: 4. ...
- MATLAB解隐函数方程时符号表达式转化为数值的方法-用vpa函数
今天在解决一个小问题时,遇到解隐函数方程,中间涉及一个解的传递问题,才好好研究了一下 syms这个语句的一些语法规则,最终用vpa这个函数解决了符号表达式到double数值的转化. syms是符号函数 ...
- 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 = ...
- 求解非线性方程f (x)= 0的MATLAB数值法指令介绍(solve、fzero的方法与实例)
一.符号方程求解 在MATLAB中,求解用符号表达式表示的代数方程可由函数solve实现,其调用格式为: solve(s)(求解符号表达式s的代数方程,求解变量为默认变量,当方程右端为0 ...
- 隐式函数matlab,matlab隐函数求解的几种方法
1. fzero() 2. fsolve()+ inline() 3. solve() 4. 先求解析解,后用替代法求数值解. A=[sinxcosy, e^siny], B=[siny,1+e^(x ...
- matlab多项式加法运算,matlab多项式运算与代数方程求解解析.ppt
* 多项式运算与代数方程求解 数学软件 Matlab Matlab基础及应用 * 多项式转化为符号表达式:poly2sym 四则运算:conv.deconv 导数与积分:ployder.polyint ...
- fick第二定律matlab求解,(最新整理)实验二MATLAB数值计算常微分方程(组)的求解
<(最新整理)实验二MATLAB数值计算常微分方程(组)的求解>由会员分享,可在线阅读,更多相关<(最新整理)实验二MATLAB数值计算常微分方程(组)的求解(19页珍藏版)> ...
- matlab解带参数方程,matlab求解变参数方程
求解含参数方程组以及带入数值 一.求解含参方程组 举个简单例子,解方程组 x+A*y=10 x-B*y=1? ??其中 x,y 为变量,A,B为字母系数. 只要在 Matlab中...... (三)用 ...
- matlab绘制圆,且求解两个圆的交点坐标
前言 这里简单记录下对于matlab绘制圆,以及求解两圆交点的坐标的实现(包括C++). 一 绘制圆 circle.m文件: function [] = circle(x, y, r, color) ...
- matlab微分方程组边值,matlab求解常微分方程边值问题的方法
matlab求解常微分方程边值问题的方法 Matlab 求解常微分方程边值问题的方法:bvp4c 函数 常微分方程的边值问题,即 boundary value problems ,简称 BVP 问题, ...
最新文章
- [FxCop.设计规则]16. 不要在封闭类中声明虚成员
- 远程定位gps linux,GPS(NMEA)数据解析
- Ubuntu20.04 远程桌面共享vnc
- gddr6速率_GDDR6 显存两年后问世:比 GDDR5X 更快,速率可达 16Gbps
- VSCode中配置git(参数设置) - 教程篇【不推荐阅读】
- mui ajax传参示例
- 如何从0开发一个Atom组件
- java 是怎么跨平台运行的
- 关于个人电脑连不上公司svn服务器,显示拒绝访问的错误
- System x服务器使用ServerGuide引导安装Windows Server 2008 R2
- Python百钱百鸡问题
- 倪光南:友友云计算中间件体现后发优势
- 给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false
- 如何将JPG转换成PNG格式呢?
- 女生做软件测试的利弊如何权衡?
- 如何使用Burp suite抓取Fiddler转发的流量包
- 校园歌手信息评分系统(C语言),大一新生期末实训
- 《极简健康: 4,少烦》 — 刘少
- python爬取网抑云歌曲下载
- 乐学python公众号_乐的解释|乐的意思|汉典“乐”字的基本解释
热门文章
- 查看twitter浏览记录_如何查看Twitter提及的通知,但不喜欢或转发
- CM311-1_YST_S905L3(B)_安卓9.0_设置无密码_默认打开adb_完美AI语音_线刷固件包
- allegro更新铜皮方法和快捷键
- 在excel中批量生成条形码的操作方法?
- 计算机其它离的360云盘,360云盘资源转到百度云 360云盘搬家教程
- 光学中的几个物理量的意义
- 2021年美容师(中级)考试技巧及美容师(中级)试题及解析
- 剑斩楼兰的将军之路:多属性决策模型。
- arcgis显示后台错误_arcgis desktop遇到严重的应用程序错误,无法继续的解决方案...
- QQScLauncher.exe应用程序错误,0xc0000022