如何用matlab求解二阶微分方程,以及程序实例

如何用matlab求解二阶微分方程,以及程序实例,第1张

1、首先看一下matlab求解方程的方法,首先指明所解方程的变仿蚂量,然后指明方程,未知数和限制条件,最后求解方程。

2、在matlab命令行窗口中输入symsx[x,params,conds]=solve(sin(x)==1,'ReturnConditions', true),按回车键可以得到方程备碰埋解。

3、转换一下,可以看到sin(x)=1方程的解是如下图所示 。

4、也可以求解下面的一个方程。

5、吵游输入symsabcyx;[x,y]=solve([a*x^2+b*y+c==0,a*x+2*y==4],[x,y])。

6、按回车键可以得到方程解。

1、题目:

把1-10的者兄整数,先判断首亏袭是否为偶数,并计算它们的和,最后做空扰一下验证

2、程序:

clcclear

sum0=0

for

i=1:10

%循环

if(mod(i,2)==0)%分支

sum0=sum0+i

end

end

%检测

test_data=[2:2:10]%顺序

test=sum(test_data)

[sum0

test]

3、运行结果:

ans

=

30

30

%minmax.m

function [A,B,C,m,n]=minmax(a,b,c,minmax)

%输入不合法就不验证了

%A,B,C分别返回amax,bx最大值(或最小值),

%与bx同行的c,minmax=1求最小,minmax=2求最大

%m返回amax个数,n返回bmax个数

%同楼上题目确实很难理解,希望写清楚点,回答的人会多点

%用matlab写一段简单的代码~,加注释写了近20分钟,郁闷。

%想写好尺宴也不简单吧,看你考虑问题多细致

%%粗糙做三分钟能写好,但是没有通用性,这种代码没有普适性,

%不好意思拿出手

%写的仓促,没有仔细验证通陵并银用性,不足之处请指出

if minmax==1

X=[a,b,c]B=[]C=[]A=[]

amin=min(a)

m=find(amin)%amax所蔽灶在行

for i=1:length(m)%因为可能有多个值取最小amin,处理此意外用

A=[A,amin]

bx=X(m,:)

bxmin=min(bx)

B=[B,bxmin]

n=find(bxmin)

cx=X(n,3)%与bxmin同行的c

C=[C,cx]

end

end

if minmax==2

X=[a,b,c]B=[]C=[]A=[]

amax=max(a)

m=find(amax)%amax所在行

for i=1:length(m)%因为可能有多个值取最大amax,处理此意外用

A=[A,amax]

bx=X(m,:)

bxmax=max(bx)

B=[B,bxmax]

n=find(bxmax)

cx=X(n,3)%与bxmax同行的c

C=[C,cx]

end

end

%%%以下是测试部分%%%

n=5

a=rand(n,1)

b=rand(n,1)

c=rand(n,1)

d=minmax(a,b,c,2)

%%%%%%结果%%%%%%%%

a =

0.4057

0.9355

0.9169

0.4103

0.8936

b =

0.0579

0.3529

0.8132

0.0099

0.1389

c =

0.2028

0.1987

0.6038

0.2722

0.1988

n =

1

A =

0.9355

B =

0.4057

C =

0.2028

m =

1

n =

1


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

原文地址: https://outofmemory.cn/yw/12477653.html

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

发表评论

登录后才能评论

评论列表(0条)

保存