w0=fzero(@fun,0.3)
%用循环语句搜寻零点
for i=1:100
w=0.3-0.001*i;
y=30*0.5/w+sqrt(0.5^2-w^2);
if y >=51
w0=w,
break;
end;
end;
w0
%一元函数直接赋值做图
w=0.2:0.001:0.4;
y=51-30.*0.5./w-sqrt(0.5.^2-w.^2);
x=zeros(size(w));
plot(w,y,w,x),grid
%一元函数用内联函数赋值做图
y=inline('-51+30*0.5/w+sqrt(0.5*2-w*2)','w');
w=0.1:0.01:0.5;
y_char=vectorize(y);
Y=feval(y_char,w);
plot(w,Y)
求解微分方程的MATLAB语言程序
微分方程
% 一阶微分方程
% 求表达式(符号运算)
S=dsolve('Dx=r*x*(1-x/k)')
S1=dsolve('Dx=r*x*(1-x/k)','x(0)=0.01')
% 转换为函数值
r=0.3;k=8;C1=0.01;
s=subs(S)
t=0:100; ss=subs(s,'t',t);
plot(t,ss),grid
% 求数值解
% 建立函数文件fun.m:
function y=fun(x,t)
y=0.3*x*(1-x/8);
%调用ode23(二、三阶龙格库塔法)解微分方程
[t,x]=ode23(@fun,[0, 20],0.01)
plot(t,x)
%高阶微分方程初值问题
%求数值解要化为一阶方程组
搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新人文社科人口问题数据拟合的MATLAB程序(4)全文阅读和word下载服务。
相关推荐: