当前位置:首页 » 编程软件 » matlab编程方程

matlab编程方程

发布时间: 2022-04-11 00:48:27

A. 用MATLAB进行函数方程组编程

x=fsolve(@fun,x0)求解fun(x)=0的解,x0是初值,fun是函数,x就是解
因为fsolve使用迭代法求解方程的,所以总要有个迭代的初值吧,这个初值就是你给的x0。
比如解方程组
x(1).^2+x(2).^2=1
x(1)=2*x(2)
可以写成
x=fsolve(f,[1 1])
这里[1 1]就是初值,其实初值一般情况下可以随便给的初值不同,结果不一定相同。 网络一下,你就知道。

B. 用matlab编程求解方程组

用matlab求解带求和问题的方程组的求解思路:考虑到问题是离散型的,可以由已知的T值,利用for循环语句求和,再用fsolve()或lsqnonlin()求解其r和s的数值解。

题主的自定义函数myfun(x)的内容。其中T值是为了解题而定的。

C. matlab编写方程

先求Ct-t的关系

y=dsolve('Dy-k*(24.8-y)^2=0')

y=

124/5

124/5-1/(25*(C1+(k*t)/25))

再用matlab拟合参数k和C1

t=[0,1,6,12,18,24,30,36,42,48,54,60,72]';

Ct=[24.823.8666723.2733321.6733318.4866716.2066713.93333...

7.706675.986674.406671.593330.666670]';

ft_=fittype('124/5-1/(25*(C1+(k*t)/25))',...

'dependent',{'Ct'},'independent',{'t'},...

'coefficients',{'k','C1'});

st=[-0.0010.4]

[curve,goodness]=fit(t,Ct,ft_,'Startpoint',st)

figure,plot(t,Ct,'*'),holdon,

plot(curve,'predobs',0.99);

st=

-0.00100.4000

curve=

Generalmodel:

curve(t)=124/5-1/(25*(C1+(k*t)/25))

Coefficients(with95%confidencebounds):

k=-0.001356(-0.002203,-0.0005092)

C1=0.005256(0.003034,0.007479)

goodness=

sse:348.0195

rsquare:0.6773

dfe:11

adjrsquare:0.6480

rmse:5.6248

D. matlab中如何对方程进行编程求解啊

disp('方程形式:a*x^2+b*x+c=0'); a=input('a='); b=input('b='); c=input('c='); p=[abc]; ans=roots(p) 哥们Mablab输出结元二次方程根

E. 求MATLAB解方程编程

思路:对等式两边求导,变成
二阶微分方程
,然后求解。
clc;clear
v=dsolve('D2v=25/8*v')
%v(0)=0
f1=subs(v,'t',0)-0;
f2=subs(v,'t','t0')-80;
[C1,C2]=solve(f1,f2,'C1,C2');
v=subs(v)
f3=int(v,0,'t0')-8;
t0=solve(f3)
t0=eval(t0)
%验算v(t0)=80
vt0=subs(v,'t',t0);
test_vt0=vpa(subs(vt0))
结果:
v
=
C1*exp(5/4*2^(1/2)*t)+C2*exp(-5/4*2^(1/2)*t)
v
=
80/(exp(5/4*2^(1/2)*t0)-exp(-5/4*2^(1/2)*t0))*exp(5/4*2^(1/2)*t)-80/(exp(5/4*2^(1/2)*t0)-exp(-5/4*2^(1/2)*t0))*exp(-5/4*2^(1/2)*t)
t0
=
2/5*log(8/31*2^(1/2)+33/31)*2^(1/2)
t0
=
0.2021
test_vt0
=
80.

F. 使用matlab编程求解方程

如何使用matlab编程求出图中方程的解,对于图中的方程用solve()和vpasolve()函数求解,并不能让我们得到所有的解。那如何去得到呢?

首先,我们试着用绘制函数(ezplot,plot),绘出其图形,此时我们可以看到,该方程有两个解,即x在0和1.5的附近有解。

然后,用vpasolve函数一个一个地去求。

实现代码:

syms x

ezplot(sin(x)-x^2/2,[-5,5]) %绘图

grid on %打网格线

x1 = vpasolve(sin(x)-x^2/2 == 0, x , 0) %求x在0附近的解

x2 = vpasolve(sin(x)-x^2/2 == 0, x , 1.5) %求x在1.5附近的解

执行结果如图所示。

G. 怎样用Matlab编写方程组程序。。。

拉格朗日function y=lagrange(x0,y0,x)n=length(x0);m=length(x);for i=1:m z=x(i); s=0.0; for k=1:n p=1.0; for j=1:n if j~=k p=p*(z-x0(j))/(x0(k)-x0(j)); end end s=p*y0(k)+s; end y(i)=s;end SOR迭代法的Matlab程序 function [x]=SOR_iterative(A,b)% 用SOR迭代求解线性方程组,矩阵A是方阵 x0=zeros(1,length(b)); % 赋初值 tol=10^(-2); % 给定误差界 N=1000; % 给定最大迭代次数 [n,n]=size(A); % 确定矩阵A的阶 w=1; % 给定松弛因子 k=1; % 迭代过程 while k<=N x(1)=(b(1)-A(1,2:n)*x0(2:n)')/A(1,1); for i=2:n x(i)=(1-w)*x0(i)+w*(b(i)-A(i,1:i-1)*x(1:i-1)'-A(i,i+1:n)*x0(i+1:n)')/A(i,i); end if max(abs(x-x0))<=tol fid = fopen('SOR_iter_result.txt', 'wt'); fprintf(fid,'\n********用SOR迭代求解线性方程组的输出结果********\n\n'); fprintf(fid,'迭代次数: %d次\n\n',k); fprintf(fid,'x的值\n\n'); fprintf(fid, '%12.8f \n', x); break; end k=k+1; x0=x; end if k==N+1 fid = fopen('SOR_iter_result.txt', 'wt'); fprintf(fid,'\n********用SOR迭代求解线性方程组的输出结果********\n\n'); fprintf(fid,'迭代次数: %d次\n\n',k); fprintf(fid,'超过最大迭代次数,求解失败!'); fclose(fid); end Matlab中龙格-库塔(Runge-Kutta)方法原理及实现龙格-库塔(Runge-Kutta)方法是一种在工程上应用广泛的高精度单步算法。由于此算法精度高,采取措施对误差进行抑制,所以其实现原理也较复杂。该算法是构建在数学支持的基础之上的。龙格库塔方法的理论基础来源于泰勒公式和使用斜率近似表达微分,它在积分区间多预计算出几个点的斜率,然后进行加权平均,用做下一点的依据,从而构造出了精度更高的数值积分计算方法。如果预先求两个点的斜率就是二阶龙格库塔法,如果预先取四个点就是四阶龙格库塔法。一阶常微分方程可以写作:y'=f(x,y),使用差分概念。(Yn+1-Yn)/h= f(Xn,Yn)推出(近似等于,极限为Yn')Yn+1=Yn+h*f(Xn,Yn)另外根据微分中值定理,存在0<t<1,使得Yn+1=Yn+h*f(Xn+th,Y(Xn+th))这里K=f(Xn+th,Y(Xn+th))称为平均斜率,龙格库塔方法就是求得K的一种算法。利用这样的原理,经过复杂的数学推导(过于繁琐省略),可以得出截断误差为O(h^5)的四阶龙格库塔公式:K1=f(Xn,Yn);K2=f(Xn+h/2,Yn+(h/2)*K1);K3=f(Xn+h/2,Yn+(h/2)*K2);K4=f(Xn+h,Yn+h*K3);Yn+1=Yn+h*(K1+2K2+2K3+K4)*(

H. 这个方程应该怎样在MATLAB中编程,并输出自变量的值

题主给出的方程实际上是一个最优化极值问题,极值问题可以用fmincon()函数或ga()函数等去求解。

如用fmincon()函数求解,可以按下列方法来解决:

1、自定义目标函数,其内容

y=9*x1+14*x2+202*x3+8*x4+6*x5+3*x6+354*x7;

2、自定义约束条件函数,其内容

c(1)=x6-x3;

c(2)=x6-x7;

ceq = x1+x2+x3+x4+x5+x6+x7-1;

3、确定x1、x2、x3、x4、x5、x6、x7 的上下限,即

lb=[0,0,0,0,0,0,0];

ub=[1,1,1,1,1,1,1];

4、使用fmincon()函数,得到x1、x2、x3、x4、x5、x6、x7 的值以及其极值(该问题为最小值等于6)

5、验证约束条件是否成立。即

disp('验证:x3>x6')

。。。

disp('验证:x7>x6')

。。。

disp('验证:A=x1+x2+x3+x4+x5+x6+x7=1')

。。。

6、编程后执行,得到如下值。

I. 用maltab解方程

关于MALTAB解方程的详细解答方法,具体的操作如下:

用matlab解方程组的问题,其实在matlab中解方程组还是很方便的,例如,对于代数方程组Ax=b(A为系数矩阵,非奇异)的求解,MATLAB中有两种方法:

(1)x=inv(A)*b — 采用求逆运算解方程组;

(2)x=A\B — 采用左除运算解方程组

PS:使用左除的运算效率要比求逆矩阵的效率高很多~

2、变参数非线性方程组的求解

对于求解非线性方程组一般用fsolve命令就可以了,但是对于方程组中某一系数是变化的

3、非线性方程数值求解

matlab里solve如何使用,是否有别的函数可以代替它.

在matlab里面solve命令主要是用来求解代数方程(即多项式)的解,但是也不是说其它方程一个也不能解,不过求解非代数方程的能力相当有限,通常只能给出很特殊的实数解。(该问题给出的方程就是典型的超越方程,非代数方程)

从计算机的编程实现角度讲,如今的任何算法都无法准确的给出任意非代数方程的所有解,但是我们有很多成熟的算法来实现求解在某点附近的解。

matlab也不例外,它也只能给出任意非代数方程在某点附近的解,函数有两个:fzero和fsolve,具体用法请用help或doc命令查询吧。

如果还是不行,你还可以将问题转化为非线性最优化问题,求解非线性最优化问题的最优解,可以用的命令有:fminbnd, fminsearch, fmincon等等。

*非线性方程数值求解

*单变量非线性方程求解

在MATLAB中提供了一个fzero函数,可以用来求单变量非线性方程的根。该函数的调用格式为:

z=fzero('fname',x0,tol,trace)

其中fname是待求根的函数文件名,x0为搜索的起点。一个函数可能有多个根,但fzero函数只给出离x0最近的那个根。

tol控制结果的相对精度,缺省时取tol=eps,trace�指定迭代信息是否在运算中显示,为1时显示,为0时不显示,缺省时取trace=0。

J. matlab编程求解方程组

如何求解多组二元一次方程组呢?题主的想法是对的,是要用循环来求解,其求解过程:

1、首先将t,h数据赋值给t1,h1,即

t1=tan(t);

h1=h.^2;

2、使用for循环语句,求解t(i),h(i)对应的a,b值,即

for i=1:6

i

t=t1(i);h=h1(i);

syms a b

eqn1 = a > 0;

eqn2 = b/a==t;

eqn3 = a^2+b^2==h;

eqns = [eqn1 eqn2 eqn3];

S = solve(eqns,[a b]);

a=vpa(S.a)

b=vpa(S.b)

end

3、运行上述代码,可以得到如下结果。

热点内容
安卓平台用什么虚拟机 发布:2024-05-07 07:44:14 浏览:246
ta栅格算法 发布:2024-05-07 07:03:23 浏览:802
符号源码 发布:2024-05-07 06:26:09 浏览:707
玩hypixel服务器ip地址要什么版本 发布:2024-05-07 06:22:50 浏览:62
代码为什么要编译 发布:2024-05-07 06:22:48 浏览:495
java面试复习 发布:2024-05-07 06:01:15 浏览:658
suftp 发布:2024-05-07 06:00:40 浏览:880
编程的tr 发布:2024-05-07 05:37:25 浏览:423
苹果4s的数据怎么备份到安卓上 发布:2024-05-07 05:37:15 浏览:819
安卓怎么注册电邮 发布:2024-05-07 05:23:49 浏览:715