求解12345678。。。

记住状态&找回密码
近10天话题
有一个疑问憋在心里很久了,也不知道怎么跟人说,今天在这里向各位前辈们求解求解下。如果一个男人喜欢看A片的话,而且是偷偷摸摸的看。都是趁妻子不在的情况下...作为妻子的我很心理不平衡,有时候想想吧男人不都是这样吗?心情不好的时候想想又很气,看也可以干嘛非得背着我呢?以为我不知道呢,又不知道怎么跟他说这个事,怕伤他自尊心...只有自己伤心,他这样尊重我吗?希望各位 哥哥姐姐们可以帮我出出主意、 谢谢了
&话题账主:隐藏
该怎么办 (12)
该怎么办 (2)
该怎么办 (4)
微山湖的鱼
xinba1984922
湖州小男人
123456xiaonvrenode45_百度百科
ode45,常微分方程的数值求解。MATLAB提供了求常微分方程数值解的函数。当难以求得微分方程的解析解时,可以求其数值解,Matlab中求微分方程数值解的函数有七个:ode45,ode23,ode113,ode15s,ode23s,ode23t,ode23tb 。
ode是Matlab专门用于解微分方程的功能函数。该求解器有变步长(variable-step)和定步长(fixed-step)两种类型。不同类型有着不同的求解器,其中ode45求解器属于变步长的一种,采用Runge-Kutta算法;和他采用相同算法的变步长求解器还有ode23。
ode45表示采用四阶-五阶Runge-Kutta算法,它用4阶方法提供候选解,5阶方法控制误差,是一种自适应步长(变步长)的常微分方程数值解法,其整体截断误差为(Δx)^5。解决的是Nonstiff(非刚性)常微分方程。
ode45是解决数值解问题的首选方法,若长时间没结果,应该就是刚性的,可换用ode23试试。
[T,Y] = ode45(odefun,tspan,y0)
[T,Y] = ode45(odefun,tspan,y0,options)
[T,Y,TE,YE,IE] = ode45(odefun,tspan,y0,options)
sol = ode45(odefun,[t0tf],y0...)
[T,Y] = ode45(odefun,tspan,y0)
odefun 是函数句柄,可以是函数文件名,句柄或名
tspan 是区间 [t0 tf] 或者一系列散点[t0,t1,...,tf]
y0 是初始值向量
T 返回列向量的时间点
Y 返回对应T的求解列向量
[T,Y] = ode45(odefun,tspan,y0,options)
options 是求解参数设置,可以用odeset在计算前设定误差,输出参数,事件等
[T,Y,TE,YE,IE] =ode45(odefun,tspan,y0,options)
在设置了事件参数后的对应输出
TE 事件发生时间
YE 事件发生时之答案
IE 事件函数消失时之指针i
sol =ode45(odefun,[t0 tf],y0...)
sol 结构体输出结果
求解一阶常微分方程
需要求解的一阶常微分方程:
odefun=@(t,y) (y+3*t)/t^2; %定义函数
tspan=[1 4]; %求解区间
y0=-2; %初值
[t,y]=ode45(odefun,tspan,y0);
plot(t,y) %作图
title('t^2y''=y+3t,y(1)=-2,1&t&4')
legend('t^2y''=y+3t')
xlabel('t')
ylabel('y')
% dsolve('t^2*Dy=y+3*t','y(1)=-2')
% ans =一阶求解结果图
% (3*Ei(1) - 2*exp(1))/exp(1/t) - (3*Ei(1/t))/exp(1/t)
求解高阶常微分方程
需要求解的高阶常微分方程:
求解的关键是将高阶转为一阶,odefun的书写.
F(y,y',y''...y(n-1),t)=0用变量替换,y1=y,y2=y'...注意odefun方程定义为行向量
dxdy=[y(1),y(2)....]
function Testode45
tspan=[3.9 4.0]; %求解区间
y0=[2 8]; %初值
[t,x]=ode45(@odefun,tspan,y0);
plot(t,x(:,1),'-o',t,x(:,2),'-*')
legend('y1','y2')
title('y'' ''=-t*y + e^t*y'' +3sin2t')
xlabel('t')
ylabel('y')
function y=odefun(t,x)
y=zeros(2,1); % 列向量
y(1)=x(2);
y(2)=-t*x(1)+exp(t)*x(2)+3*sin(2*t);matlab求解
我们怎么用呢?
直接利用函数计算, 例如: sin(pi), 还有我们提到的 mysqr(3)...
函数画图, 例如Plottools中提到的ezplot, ezsurf...
但是这也太小儿科了, 有没有想过定义函数后, 利用它来: 求解零点(即解f(x)=0方程), 最优化(求最值/极值点),
求定积分, 常微分方程求解等.
方程的分类:单个方程按其系数的性质分为线性方程和非线性方程。
一元非线性方程求解(fzero()、roots()、fsolve())
多元非线性方程求解(fsolve())
fzero()、fsolve()比较:
使用形式相似
&&&&&&&&&&&&&
解=fzero(函数, 初值, options)
&&&&&&&&&&&&&
解=fsolve(函数, 初值, options)
fzero()函数求解一元非线性方程的零点,fsolve()可以解多元方程组。
关于解: fzero给出的是x单值的解, fsolve给出的是解x可能处于的区间, 当然, 这个区间很窄.
关于'函数': 前面提到的三种表示方法, 在这里都可以用. 记住就是: 如果直接使用函数表达式, 要用单引号将它括起来;
而m文件函数名、匿名函数的函数句柄、inline函数则可以直接使用.
关于'初值': 电脑比较"笨", 它寻找解的办法是尝试不同地x值, 摸索解在哪里. 所以我们一开始就要给它指明从哪里开始下手,
初值这里, 可以只给它一个值, 让它在这个值附近找解, 也可以给它一个区间(区间用[下限,上限]这种方式表示),
它会在这个区间内找解. fsolve()可以同时有多个初值,例如:y=fsolve('tan(x)-x',[-4,0,4])
fzero注意1: fzero的一些局限性, 如果你给定的初值是区间, 而恰好函数在区间端点处同号, fzero会出错.
例如,如果x0是一个长度为2
的矢量,则fzero函数假设x0是一个区间,其中fun(x0(1)))的符号与fun(x0(2))的不同. 如果符号相同,则会出错.
给出符号不同的区间可以保证fzero函数返回一个fun函数改变符号的位置附近的值。
fzero注意2: 而如果你只给一个初值, fezro又有可能'走错方向',
例如给初值2让它解mysqr这个函数方程就会出错.
root()用法:返回一个列矢量,其元素为多项式c的解。
例:求 x^3-8x^2+6x-30=0 的解
&& p=[1 -8 6 -30];
&& r=roots(p)
7.7260&&&&&&&&&
&& 0.1370 + 1.9658i
&& 0.1370 - 1.9658i
fzero()、roots()、fsolve()用法小结:
解方程函数调用格式说明
函数及调用格式
计算多项式方程P=0的根。
fsolve('fun',x0)
计算由参数fun=0决定的方程的根。x0是估计的方程根的初值。
fsolve('fun',x0,options)
计算由参数fun=0决定的方程的根,x0是估计的方程根的初值,options是优化参数,可取的值有0(默认)和1。
[x,fva]=fsolve('fun',x0)
同fsolve('fun',x0),除输出根x外,还输出在x处fun的函数值fva。
[x,fva,exi]=fsolve(…)
同fsolve('fun',x0),除输出根x外,还输出在x处fun的函数值fva和退出状态exi。exi为1是正常退出。
[x,fva,exi,out]=fsolve(…)
同fsolve('fun',x0),除输出根x外,还输出在x处fun的函数值fva、退出状态exi及优化信息out.
[x,fva,exi,out,jac]=fsolve(…)
同fsolve('fun',x0),同时输出根x、在x处fun的函数值fva、退出状态exi、优化信息out和点x处的jacobian值。
fzero('fun',x0)
计算由参数fun=0决定的方程的根。x0是估计的方程根的初值,可以是常数,也可以是区间。如果x0是常数,则计算x0附近的根;如果x0是区间,则计算这个区间内的根,无根则输出错误信息。
fzero('fun',x0,options)
同fzero('fun',x0),options是优化参数,可以通过optimset定义。
[x,fva]=fzero('fun',x0)
同fzero('fun',x0),同时输出方程的根x和根处的函数值fva。
[x,fva,exitflag]=fzero(…)
同fzero('fun',x0),同时输出方程的根x、根处的函数值fva和退出状态exitflag。
[x,fva,exitflag,out]=fzero(…)
同fzero('fun',x0),同时输出方程的根x、根处的函数值fva、退出状态exitflag和优化信息。
fzero使用下面的选项结构字段:
display:显示级别。值为'off时,不显示输出;值为‘iter’时,显示每次跌代的输出;值为‘final’时,显示最后的输出;
值为‘notify’时,显示函数不收敛时的输出。
tolx:为x的终止容限。
[x,fval]=fzero(。。。):返回解x处目标函数fun 的值。
[x,fval,exitflag]=fzero(。。。):返回一个exitflag值,描述fzero函数的退出条件。
&&&&&&&&&&&&&&
返回值如下所示:
&&&&&&&&&&&&&&&&&
〉0 ,表示函数找到了零值点x。
&&&&&&&&&&&&&&&&
《=0,表示没有发现零值点。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。(window.slotbydup=window.slotbydup || []).push({
id: '2081942',
container: s,
size: '1000,60',
display: 'inlay-fix'

我要回帖

更多关于 求解12345678 的文章

 

随机推荐