1楼:匿名用户
先用2除取余数
根据余数决定是否继续用3乘加一
给你提供思路啦,编程的话 还是要自己动手吧 ~~
哪位大侠帮忙编个matlab程序要求如下 20
2楼:匿名用户
function m=func(n,s)
m=15*s+21*n-1/25*(11.67*s-51*n)*(sign(11.67*s-51*n)+1)/2-3/100*(90*n-51.
6*s)*(sign(90*n-51.6*s)+1)/2;
if s>0 && s<100000
else
m=10000;
endif(n>0 && n<120002)else
m=10000;
end之后就可以用fminsearch或者ga算法进行求解了
3楼:卜项离
% m=15*s+21*n-1/25(11.67*s-51*n)*j-3/100*(90*n-51.6*s)g
% 0=0时j=1否则j=0,当90*n-51.6*s>=0时g=1否则g=0
% s+0.45n<=10000
% 球当m最大时n和s的值并求出最大的m
m_max = 0;
for s = 1:9999
for n = 1:120001
if(11.67*s-51*n>=0)
j = 1;
else
j = 0;
endif(90*n-51.6*s>=0)
g = 1;
else
g = 0;
endif(s+0.45*n<=10000)
m = 15*s+21*n-1/25*(11.67*s-51*n)*j-3/100*(90*n-51.6*s)*g;
if(m > m_max)
m_max = m;
n_max = n;
s_max = s;
endend
endend
disp(['最大的m为: ' num2str(m_max)]);
disp('最大值对应的n和s为:')
disp(['n = ' num2str(n_max)]);
disp(['s = ' num2str(s_max)]);
结果是:
最大的m为: 406642.548
最大值对应的n和s为:
n = 22220
s = 1
不知道对不对,纯粹是双循环硬方法搜索的,计算时间有点长,不知道能不能优化
编写一个matlab脚本程序,实现输出字母的功能,具体要求如下:
4楼:匿名用户
c=input('请输入一个字符:','s');
if c>='a' & c<='z';
disp(setstr(abs(c)+1));
elseif c>='a'& c<='z';
disp(setstr(abs(c)-1));
else
disp(c);
end请输入一个字符:e
f迈特莱博
用matlab编写一个程序
5楼:匿名用户
子函数:
function y = subfun(t)index = find(t < -5);
if size(index) ~= 0
x = t(1, index);
y1 = (x.^3 + 5*x -10) / 6;
endindex = find((t>=-5)&(t<5));
if size(index) ~= 0
x = t(1, index);
y2 = exp(x-1);
endindex = find(t >= 5);
if size(index) ~= 0
x = t(1, index);
y3 = log10(7*x+4); %不确定你用的是以多少为底的对数,此处是10.
endy = [y1 y2 y3];
调用函数:
x = -10: 0.05: 10;
y = subfun(x);
plot(x, y);
6楼:匿名用户
这个分段就可以了,再取间隔值,很容易。。。
如x=-10:0.02:10;
y = 3*x^2;
plot(y);
7楼:玩野啊
在m-file edit中:
function subfun(a,b)
x=a:0.01:
b; %a,b为你所要的自变量取值范围y=(x.^3+5*x-10)/6.*(x+5<0)+exp(x-1).
*(-5<=x<5)+log(7*x+4).*(x>=5);
plot(x,y)
保存后,在***mand window下输入subfun(-10,10)就可以了……
分段函数都可以引入一个向量,自变量在某个范围内为1,否则为0,上述**中的(x+5<0),(-5<=x<5),和(x>=5)就是了……
还要注意的是用".*",而不是"*"
请帮助我编写一下这道题matlab的程序或者lingo的程序,如图
8楼:匿名用户
还有东西没有交代清楚吧,比如 r 的数据啊?
简单转化 lingo **如下:
sets:
thei/1..17/:p,v;
thej/1..4/:r;
theij(thei,thej):x;
endsets
min=@sum(thei(i)|i#gt#8:x(i,4)*p(i));
@for(thej(j)|j#lt#3:
@sum(thei(i):v(i)*x(i,j))<=r(j)
);@for( thei(i)|i#lt#7:
@sum(thej(j)|j#lt#3:x(i,j))=1
);@for( thei(i)|i#gt#8:
@sum(thej(j)|j#lt#3:x(i,j))=1
);data:
!r=?;
enddata
编写一个m文件,实现分段函数…如下……matlab
9楼:匿名用户
function y=f(x)
if x<=-1
y=x^2+1;
else if x<1
y=0;
else
y=x^2;end
用matlab编写一个函数使其产生如下分段函数 f(x)=0.5x x<=2 1.5-0.25x 2
10楼:久久不能记住
建立名为myfun.m的m文件,内容如下:
function f=myfun(x)
f=0.5*x.*(x<=2)+(1.5-0.25*x).*(x>2).*(x<=6)+0.5*(x>6);
之后绘制[0,2]内 f(x)*f(x+2)的曲线x=0:.1:2;
y=myfun(x).*myfun(x+2);
plot(x,y)
绘制f(x)的曲线
x=0:.1:10;
y=myfun(x);
plot(x,y)
matlab 中ilaplace函数的使用问题,请帮忙修改一下程序
11楼:匿名用户
zpk 是控制系统工具箱的函数,创建的是零极点形式的传递函数模型,对于这类对象,并没有定义ilaplace函数。ilaplace是针对符号类型(sym)对象定义的函数。
对于如题主所给的这种较为简单的模型(单输入单输出,无延迟,且系统阶次不高),可以通过简单的转换,由zpk对象得到sym对象,再进行拉氏逆变换:
>>g=zpk(,[-1],1)
zero/pole/gain:
1-----
(s+1)
>>[n,d]=tfdata(g,'v');
>>g_s=poly2sym(n,'s')/poly2sym(d,'s')
g_s=
1/(s+1)
>>ilaplace(g_s)
ans=
1/exp(t)
12楼:我行我素
zpk函数返回的是模型,不可用作ilaplace函数的输入参数。ilaplace的输入参数必须是函数及自变量,如:
syms a s x
f = 1/(s - a)^2;
ilaplace(f, x)
结果:ans =
x*exp(a*x)
matlab编程中的函数问题,如图,可以帮忙解释一下用fminbnd函数求极小值
13楼:匿名用户
这个函数求的是局部极小值点,只会返回一个极小值点