matlab求可行性方案函数

matlab求可行性方案函数,第1张

y=inline('x^3 + x^2 + x + 1','x'); x=3;value=y(x) MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。

tf是传递函数的意思,一般学自动控制原理的时候经常用,在s域中,比如要输入G(s)=1/(s^2+2s+1),就可以在matlab中输入G=tf([1],[1 2 1])。

Tf函数用来建立实部或复数传递函数模型或将状态方程、或零级增益模型转化成传递函数形式。

sys = tf(num,den)命令可以建立一个传递函数,其中分子和分母分别为num和den。输出sys是储存传递函数数据的传递函数目标。

扩展资料

单输入单输出情况下,num和den是s的递减幂级数构成的实数或复数行向量。这两个向量并不要求维数相同。如h = tf([1 0],1)就明确定义了纯导数形式h(s)=s。

若要构建多输入多输出传递函数,要分别定义每一个单输入单输出系统的端口的分子与分母。这种情况下:

Num和den是单元数组,其中行数等于输出数,列数等于输入数;

行向量num {i,j}和den{i,j}定义了从输入j到输出i的传递函数的分子与分母。

如果此多输入多输出系统的传递函数中所有的单输入单输出端口有相同的分母,可以设置den为代表这个通用分母的行向量。

用matlab求解常微分方程边值问题,可以使用 bvp4c函数、deval函数与bvpinit函数配合解答。

具体使用方法如下:

solinit = bvpinit(xinit,uinit)

sol = bvp4c(@shootfun,@bcfun,solinit)

u= deval(sol,x)

其中:xinit——x的初始条件,uinit——u的初值;

shootfun——自定义常微分方程函数,bcfun——自定义边界条件函数;

bvpinit——计算边界值问题求解器的初始估计值

bvp4c——用四阶方法求解边界值问题

deval——计算微分方程解结构体

实现过程如下:

首先,自定义常微分方程函数shootfun(x,u),自定义边界条件函数 bcfun(ua,ub)

其二,确定x范围(0,1),初定u的初值(0,0)

其三,使用 bvpinit函数得到solinit粗略解网格结点,使用 bvp4c函数得到sol解的结构体,使用deval得到方程的数值解

然后,用plot函数分别绘出x-u(x)的关于数值解和解析解的图形。

最后,计算出最大误差,即max(u数值解-u解析解)

按上述过程编程,可以得到如下结果。

[number,cellstr]=textread('ahex',':%8d%s');

%number为昌号后面的八位二进制,cellstr为后续的十六进制数组成的字符串细胞元

str=cell2mat(cellstr);

%细胞元转为矩阵

str=reshape(str',1,numel(str));

%转为一行,你的例子给出的是6列

data=sscanf(str,'%4x');

data_new=bitand(data,hex2dec('3fff'));

%忽略头2位

[dec2bin(data,16),repmat('

',26,1),dec2bin(data_new,16)]

%这一行是测试行,可删

%最后用二进制补码转换成正的或负的十进制整数,这句不是很理解

%是14位的二进制进行补码转成正的或负的十进制?

题主给出的函数为分段函数,在matlab中可以用代码来实现:

1、首先,建立自定义分段函数,piecewise_fun(x),并保存为piecewise_funm文件。piecewise_fun(x)函数的内容,为

function y=piecewise_fun(x)

n=length(x);

for i=1:n

if x(i)>=0 & x(i)<=1

y(i)=x(i);

elseif x(i)>1 & x(i)<=2

y(i)=2x(i)-1;

elseif x(i)>2

y(i)=x(i)^2-1;

else

y(i)=0;

end

end

end

2、然后在matlab的命令窗口中,执行下来命令

>>x=-10:05:10; %例如

>>y=piecewise_fun(x)

>>plot(x,y),grid on

>>xlabel('x'),ylabel('y(x)')

在Matlab中,输入函数并代值可以通过以下步骤完成:

1 在Matlab左侧的Command窗口中输入函数,如:f(x)=x^2+3x+2。

2 要代入数值,需要使用方括号“[]”输入,如:f([2,3,4]),表示分别代入2、3、4三个值计算函数的值。

3 按下回车键,Matlab会自动输出相应的结果,如:8 17 26。

如果函数是一个M文件,那么可以直接打开该文件,输入相应的数值进行运算,也可以使用函数句柄,如:

1 定义函数句柄:f=@(x)x^2+3x+2;

2 调用函数句柄:f(2),表示代入x=2计算结果。

通过以上方法,就能够在Matlab中输入函数并代值了。

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

原文地址: http://outofmemory.cn/langs/12185442.html

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

发表评论

登录后才能评论

评论列表(0条)

保存