![]() |
[求助]判断一元多项式函数的编程问题
function y=douxiangshi(f)
f=inline(f); %定义函数 % 先定义一个函数 对函数求导 求出稳定点和极值点拐点 先判断最左边的增减凹凸性 在判断中间的 % 增减凹凸性 最后判断最右边的凹凸性 然后画图 syms x z=diff(sym(f),x); %求导 dian=solve(z);%求稳定点 %有几个极值点 erdao=diff(sym(z),x); %求二阶导 dain=sort(dian); len=length(size(dian)); %有几个极值点 % 显示几个极值点 disp('稳定点:'); for j=1:len fprintf('%4s ',char(dian(j))); end for k=1:len % 求极值点及拐点 i=subs(erdao,'x',dian(k)); if double(i)>0 fprintf('\n函数在 %s 处取得极大值\n',char(dian(k))); elseif double(i)<0 fprintf('\n函数在 %s 处取得极小值\n',char(dian(k))); else fprintf('\n (%s,%s) 为拐点\n',char(dian(k)),f(dian(k))); end end % len=len-1; %中间区间数 % if len>1 %判断最左区间的增减性及凹凸性 zuo=double(dian(1))-1; %取点 if subs(z,'x',zuo)>0; %判断增 if subs(erdao,'x',zuo)>0; % 判断凸 fprintf('(-∞,%s)为增区间 此区间为凸\n',char(dian(1))); else subs(erdao,'x',zuo)<0; % 判断凹 fprintf('(-∞,%s)为增区间 此区间为凹\n',char(dian(1))); end else subs(z,'x',zuo)>0; % 判断减 if subs(erdao,'x',zuo)>0; % 判断凸 fprintf('(-∞,%s)为减区间 此区间为凸\n',char(dian(1))); else subs(erdao,'x',zuo)<0; % 判断凹 fprintf('(-∞,%s)为减区间 此区间为凹\n',char(dian(1))); end end %判断中间的区间的增减性及凹凸性 for m=1:len-1 n=double((dian(m)+dian(m+1))/2); %取点 if subs(z,'x',n)>0 % 判断增 if subs(erdao,'x',n)>0; % 判断凸 fprintf('(%s,%s)为增区间 此区间为凸\n',char(dian(m)),char(dian(m+1))); else subs(erdao,'x',n)<0; % 判断凹 fprintf('(%s,%s)为增区间 此区间为凹\n',char(dian(m)),char(dian(m+1))); end else subs(z,'x',n)<0; % 判断减 if subs(erdao,'x',n)>0; % 判断凸 fprintf('(%s,%s)为减区间 此区间为凸\n',char(dian(m)),char(dian(m+1))); else subs(erdao,'x',n)<0; % 判断凹 fprintf('(%s,%s)为减区间 此区间为凹\n',char(dian(m)),char(dian(m+1))); end end end % 判断最右区间的增减性及凹凸性 you=double(dian(len))+1;%取点 if subs(z,'x',you)>0 %判断增 if subs(erdao,'x',you)>0; %判断凸 fprintf('(%s,+∞)为增区间 此区间为凸\n',char(dian(len))); else subs(erdao,'x',you)<0; %判断凹 fprintf('(%s,+∞)为增区间 此区间为凹\n',char(dian(len))); end else subs(z,'x',you)>0; %判断减 if subs(erdao,'x',you)>0; %判断凸 fprintf('(%s,+∞)为减区间 此区间为凸\n',char(dian(len))); else subs(erdao,'x',you)<0; %判断凹 fprintf('(%s,+∞)为减区间 此区间为凹\n',char(dian(len))); end end % end ezplot(f); grid 在命令窗口输入douxiangshi('x^3+6*x^2-15*x-20') 得到的答案 稳定点: 1 -5 函数在 1 处取得极大值 函数在 -5 处取得极小值 (-∞,1)为减区间 此区间为凸 (1,-5)为减区间 此区间为凹 (-5,+∞)为减区间 此区间为凹 怎么得不到全部的稳定点 拐点也没得出来 还有怎么会是 (1,-5)为减区间 此区间为凹 (-5,+∞)为减区间 此区间为凹 区间都倒了 得到的稳定点已经排序了的啊 会是1 -5 |
所有时间均为北京时间。现在的时间是 12:27。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.