MATLAB怎么定义已知函数f x 是定义在(x,t+10)=g(x,t)

知道x(t+1)和x(t)的关系,怎么用MATLAB拟合?_百度知道
知道x(t+1)和x(t)的关系,怎么用MATLAB拟合?
已知x(t+1)=x(t)+r*[1-x(t)/xm]*x(t),已知t=0:1:16,x=[...]应该怎么去拟合这个模型?
我有更好的答案
lz题目不是很清楚哈。1、如果,已知模型、参数和初值,只需要仿真一下,那么很简单,可采用如下程序:t=0:1:16;N=length(t);x=zeros(1,N);x(1)=1;%初始化r=0.01;xm=10;for&ii=1:N-1&&&&x(ii+1)=x(ii)+r*(1-x(ii)/xm)*x(ii);endplot(t,x)2、如果只知模型结构和输入t输出x,不知道模型中的参数如xm,r和初值,而要求我们参数辨识。这种辨识问题较复杂,针对lz问题,提供两种方法:a,&离散模型转连续模型。连续模型为:dx/dt=r*[1-x/xm]*x。此连续模型解析解为:x(t)=xm*c*exp(rt)/(1+c*exp(rt)),参数有r、xm和c三个。此时就可以利用matlab的curve&fitting工具箱。其中拟合函数项选用自定义,将上述函数写入即可。如图所示b,&构建最小二乘函数。利用1中的程序,将参数xm,&r作为因变量,在一组固定的输入xm,r下,模型中预测值与实际值的误差平方和作为函数值。再利用matlab最优化工具箱,对该函数进行优化,求出使得该函数取最小时的xm和r。具体代码如下:函数的M文件:function&f=err2(p)xm=p(1);r=p(2);%需要拟合的数据点,由于lz没给,我自己设定如下:x0=[1.0000&&&&1.0090&&&&1.0181&&&&1.0272&&&&1.0364&&&&1.0457&&&&1.0551&&&&1.0645&&&&1.0740&&&&1.0836&&&&1.0933&&&&1.1030&&&&1.1128&&&&1.1227&&&&1.1327&&&&1.1427&&&&1.1529];%%&仿真模型预测数据:N=length(x0);x=zeros(1,N);%初始化x(1)=x0(1);for&ii=1:N-1&&&&x(ii+1)=x(ii)+r*(1-x(ii)/xm)*x(ii);end%%&求差方和f=(x-x0)*(x-x0)';&end优化的M文件p&=&fminsearch(@(x)&err2(x),[5;0.02];%[5;0.02]是初始迭代值,有时需要试几次。xm=p(1);r=p(2);运行结果:&&xm=&10.6867,&r=&0.0099。与模型中设定参数r=0.01;xm=10;一致。
采纳率:73%
为您推荐:
其他类似问题
matlab的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
下载作业帮安装包
扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
卷积的坐标缩放性质证明已知卷积定义:g(x)=f(x)*h(x)=∫f(t) g(x-t) dt (∫是对t从-∞到+∞) 求证:f(x/a)*g(x/a)=a*g(x/a)
作业帮用户
扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
f(x/a)*g(x/a)=∫f(t/a)g((x-t)/a)dt (令s=t/a)=∫f(s)g(x/a-s)d(as)=a∫f(s)g(x/a-s)ds=a×g(x/a).
为您推荐:
其他类似问题
扫描下载二维码matlab中关于消除t求x与y的函数,怎么求_百度知道
matlab中关于消除t求x与y的函数,怎么求
我有更好的答案
问题简化后如下:y = t^3 ,x=t^2 ;如何得到x y 的关系 :代码如下 :clc,syms ty = t^3 ;x=t^2 ;y=subs(compose(y,finverse(x)),'t','x')y =x^(3/2)subs :替换变量 例如 subs('x^2+1','x','y')ans =y^2 + 1compose :实现函数的复合&& y=x^2x=t&& compose(y,x)ans =t^2&& compose 函数compose Functional composition.compose(f,g) returns f(g(y)) where f = f(x) and g = g(y).Here x is the symbolic variable of f as defined by SYMVAR and y is the symbolic variable of g as defined by SYMVAR.If f and g are symbolic functions the x and y are the respectiveinputs.Examples:f(x) = 1/(1 + x^2); g(y) = sin(y); h = x^t; p = exp(-y/u);compose(f,g) returns 1/(sin(y)^2 + 1)compose(f,g,t) returns 1/(sin(t)^2 + 1)compose(h,g,x,z) returns sin(z)^tcompose(h,g,t,z) returns x^sin(z)compose(h,p,x,y,z) returns (1/exp(z/u))^tcompose(h,p,t,u,z) returns x^(1/exp(y/z)) finverse求反函数Functional inverseSyntaxg = finverse(f)g = finverse(f,var)Descriptiong = finverse(f) returnsthe functional inverse of f.Here f isan expression or function of one symbolic variable,for example,x.Then g is an expression or function,such that f(g(x))= x.That is,finverse(f) returns f–1,provided f–1 exists.g = finverse(f,var) usesthe symbolic variable var as the independentvariable.Then g is an expression or function,such that f(g(var)) = var.Use this form when f containsmore than one symbolic variable.Input ArgumentsfSymbolic expression or function.varSymbolic variable.Output ArgumentsgSymbolic expression or function.ExamplesCompute functional inverse for this trigonometric function:syms xf(x) = 1/tan(x);g = finverse(f)g(x) =atan(1/x)
为您推荐:
其他类似问题
matlab的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。matlab中的fmincon函数怎么用_百度知道
matlab中的fmincon函数怎么用
我有更好的答案
一、fmincon函数基本介绍求解问题的标准型为min F(X)s.tAX &= bAeqX = beqG(x) &= 0Ceq(X) = 0VLB &= X &= VUB 其中X为n维变元向量,G(x)与Ceq(X)均为非线性函数组成的向量,其它变量的含义与线性规划,二次规划中相同,用Matlab求解上述问题,基本步骤分为三步:1. 首先建立M文件fun.m定义目标函数F(X):function f = fun(X);f = F(X) 2. 若约束条件中有非线性约束:G(x) &= 0 或 Ceq(x) = 0,则建立M文件nonlcon.m定义函数G(X)和Ceq(X);function [G, Ceq] = nonlcon(X)G = ...Ceq = ... 3. 建立主程序,非线性规划求解的函数时fmincon,命令的基本格式如下:[转载]Matlab &wbr&fmincon函数用法 注意:(1)fmincon函数提供了大型优化算法和中型优化算法。默认时,若在fun函数中提供了梯度(options 参数的GradObj设置为'on'),并且只有上下界存在或只有等式约束,fmincon函数将选择大型算法,当既有等式约束又有梯度约束时,使用中型算法。(2)fmincon函数的中型算法使用的是序列二次规划法。在每一步迭代中 求解二次规划子问题,并用BFGS法更新拉格朗日Hessian矩阵。(3)fmincon函数可能会给出局部最优解,这与初值X0的选取有关。 二、实例1. 第一种方法,直接设置边界主要是指直接设置A,b等参数。例1:min f = -x1 - 2*x2 + 1/2*x1^2 + 1/2 * x2^22*x1 + 3*x2 &= 6x1 + 4*x2 &= 5x1, x2 &= 0 function ex131101 x0 = [1; 1];A = [2, 3; 1, 4];b = [6, 5];Aeq = [];beq = [];VLB = [0; 0];VUB = [];[x, fval] = fmincon(@fun3, x0, A, b, Aeq, beq, VLB, VUB) function f = fun3(x)f = -x(1) - 2*x(2) + (1/2)*x(1)^2 + (1/2)*x(2)^2; 2. 第二种方法,通过函数设置边界例2: min f(x) = exp(x1) * (4*x1^2 + 2*x2^2 + 4*x1*x2 + 2*x2 + 1)x1 + x2 = 01.5 + x1 * x2 - x1 - x2
&= 0-x1*x2 - 10 &= 0function youh3x0 = [-1, 1];A = [];b = [];Aeq = []; beq = [];vlb = []; vub = [];[x, fval] = fmincon(@fun4, x0, A, b, Aeq, beq, vlb, vub, @mycon) function f = fun4(x);f = exp(x(1)) * (4*x(1)^2 + 2*x(2)^2 + 4*x(1)*x(2) + 2*x(2) + 1); function [g, ceq] = mycon(x)g = [1.5 + x(1)*x(2) - x(1) - x(2); -x(1)*x(2) - 10];ceq = [x(1) + x(2)]; 3. 进阶用法,增加梯度以及传递参数这里用无约束优化函数fminunc做示例,对于fmincon方法相同,只需将边界项设为空即可。(1)定义目标函数function [J, grad] = costFunction(theta, X, y)%COSTFUNCTION Compute cost and gradient for logistic regression%
J = COSTFUNCTION(theta, X, y) computes the cost of using theta as the%
parameter for logistic regression and the gradient of the cost%
w.r.t. to the parameters. % Initialize some useful valuesm = length(y); % number of training examples % You need to return the following variables correctly J = 0;grad = zeros(size(theta)); % ====================== YOUR CODE HERE ======================% Instructions: Compute the cost of a particular choice of theta.%
You should set J to the cost.%
Compute the partial derivatives and set grad to the partial%
derivatives of the cost w.r.t. each parameter in theta%% Note: grad should have the same dimensions as theta% z = X *hx = 1 ./ (1 + exp(-z));J = 1/m * sum([-y' * log(hx) - (1 - y)' * log(1 - hx)]); for
j = 1: length(theta)
grad(j) = 1/m * sum((hx - y)' * X(:,j));end% ============================================================= end (2)优化求极小值%
Set options for fminuncoptions = optimset('GradObj', 'on', 'MaxIter', 400); %
Run fminunc to obtain the optimal theta%
This function will return theta and the cost [theta, cost] = ...
fminunc(@(t)(costFunction(t, X, y)), initial_theta, options); % [theta, cost] = ...%
fminunc(@(t)(costFunction(t, X, y)), initial_theta);% Print theta to screenfprintf('Cost at theta found by fminunc: %fn', cost);fprintf('theta: n');fprintf(' %f n', theta);
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。matlab中如何定义函数_百度经验
&&&&&&&&&电脑软件matlab中如何定义函数听语音123
百度经验:jingyan.baidu.com许多时候希望将特定的代码(算法)书写成函数的形式,提高代码的可封装性与重复性,简化代码设计,提高执行效率!下面简单介绍一下matlab中的函数定义与使用。百度经验:jingyan.baidu.commatlab 7.0及以上百度经验:jingyan.baidu.com1首先建立M文件或直接点击(File/New/Function)建立函数文件,其中函数文件的格式是:function [输出变量] = 函数名称(输入变量)% 注释% 函数体2如下所示,是编写的一个求1到n之和的求和函数 eg_sum,按照上述格式,编写代码如下并保存文件,注意文件命名时不能以数字开头:function [s] &= eg_sum( n )% calculate the sum of 1..ns = 0;for i = 1:n& & s = s +end3回到控制台Command Window(主界面),注意要使用之前保存的函数文件名来调用函数,如下所示:&& clear&& a = eg_sum(10)运行结果: a = 554许多网友说函数名一定要与函数文件名一致,其实不是这样子的,只要知道调用函数时是通过函数文件名调用的这点即可!比如下图所示,即使文件名仍然是eg_sum,但我可以修改函数名为:my_sum 调用时用文件名调用就好,如下所示:&& b = eg_sum(10)运行结果: b = 55END百度经验:jingyan.baidu.com在调用函数时,请确保已将matlab当前目录切换到函数文件所在处,不然会报错:Undefined function 'eg_sum' for input arguments of type 'double'.经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。作者声明:本篇经验系本人依照真实经历原创,未经许可,谢绝转载。投票(122)已投票(122)有得(1)我有疑问(0)◆◆说说为什么给这篇经验投票吧!我为什么投票...你还可以输入500字◆◆只有签约作者及以上等级才可发有得&你还可以输入1000字◆◆如对这篇经验有疑问,可反馈给作者,经验作者会尽力为您解决!你还可以输入500字相关经验200477热门杂志第1期你不知道的iPad技巧3738次分享第1期win7电脑那些事6602次分享第2期新人玩转百度经验1395次分享第1期Win8.1实用小技巧2643次分享第1期小白装大神1899次分享◆请扫描分享到朋友圈}

我要回帖

更多关于 已知函数fx的定义域为 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信