微分法MATLAB语⾔程序,matlab微积分运算命令与例题pdf ⼀、⽤Matlab进⾏微积分运算
直接在word计算 可以⽤notebook
syms x n;s1=symsum(sin(x)/n^2, n,1, inf)
s1 =
(pi^2*sin(x))/6
syms x n;s2=symsum((-1)^(n-1)*x^n/n, n,1, inf)
s2 =
piecewise([x
= -1, -Inf], [abs(x) <= 1 and x <> -1, log(x + 1)])
⼆、如何⽤matlab求解⼆阶微分⽅程,以及程序实例
1、⾸先看⼀下matlab求解⽅程的⽅法,⾸先指明所解⽅程的变量,然后指明⽅程,未知数和限制条件,最后求解⽅程。
2、在matlab命令⾏窗⼝中输⼊syms x [x,params,conds]=solve(sin(x)==1,'ReturnConditions', true) ,按回车键可以得到⽅程解。
3、转换⼀下,可以看到sin(x)=1⽅程的解是如下图所⽰ 。
4、也可以求解下⾯的⼀个⽅程。
5、输⼊syms a b c y x;[x,y]=solve([a*x^2+b*y+c==0,a*x+2*y==4],[x,y])。
6、按回车键可以得到⽅程解。 。
三、matlab微分计算问题
#include
#include
using namespace std;
double sandian(double x);
double sandian(double f[6],double h)
{
double ff[6];
int i;
int k;
ff[0]=(-3*f[0]+4*f[1]-f[2])/(2*h);
ff[5]=(f[3]-4*f[4]+3*f[5])/(2*h);
for(i=1;i<5;i++)
{
ff[i]=(-f[i-1]+f[i+1])/(2*h);
}
for(k=0;k<6;k++)
{
cout<
cout<
}
return 0;
}
void main()
{
double f[6];
int n;
double h;
for(n=0;n<6;n++)
{
f[n]=(0.6-0.1*n)*(0.6-0.1*n)*(0.6-0.1*n)*sin(0.6+0.2*n);
}
cout
cin>>h;
sandian(f,h);
}
这个程序可以解决0——0.6的这个函数的积分
matlab求导四、请问怎样在matlab上实现⾼等数学的常见运算
1、验证矩阵运算 我们都做过矩阵的运算,⼤概都会有⼀种感受,就是繁杂。
对于多⾏多列的矩阵运算,更是容易出错。如何来检验学习效果呢,这就需要验证结果。
参考书的答案难免出现错误,⽽且如果是实际问题的话,⼜哪来的参考答案呢?还有⼀种⽅法,那就是⾃⼰编程解决。可是实在太⿇烦了。
例如说在考虑两个矩阵 A 和 B 的乘积问题时,在 C 语⾔中实现就并不仅仅是⼀组双重循环的问题。双重循环当然是矩阵乘积所必需的,除此之外要考虑的问题很多:A 和 B 有⼀个是复数矩阵怎么考虑;其中⼀个是复数矩阵时怎么考虑;全部是实系数矩阵时⼜怎么管理;这样就要在⼀个程序中有4个分⽀,分别考虑这 4 种情况。
然后还得判断这两个矩阵是否可乘。所以说,没有⼀定时间,⽤ C 语⾔不可能编写出考虑各种情况的⼦程序。
然⽽有了 MATLAB 这样的⼯具,问题就变得⾮常简单了。我们只需打开MATLAB,在命令窗⼝执⾏简单的操作便能完成运算。
例如:计算A*B,其中A= 1 2 3 B= 3 4 5 7 8 9 6 7 8 5 4 3 8 9 4 在MATLAB的命令窗⼝中键⼊ >> A=[1 2 3;7 8 9;5 4 3]; >> B= [3 4 5;6 7 8;8 9 4]; >> A.*B ans = 3 8 15 42 56 72 40 36 12 其中“A=[1 2 3;7 8 9;5 4 3]; B=[3 4 5;6 7 8;8 9 4];”为负值语句,矩阵内的⾏⽤“;”隔开。A.*B代表A*B。
这个例⼦很简单,但⾜以说明要表达的意思。MATLAB可以完成你所需要的任何矩阵运算,还包括⼀些常⽤的变换。
以后再遇见多⾏多列的复杂矩阵运算时,我们就可以不⽤劳神了,有了MATLAB⼀切轻松解决。 2、科学运算 常见的正弦,余弦,正切,与切等计算,⼀般的编程语⾔就能实现,甚⾄复杂⼀点的计算器也可以解决。
但是他们能做求导,积分运算吗?我想是很困难的。⽽MATLAB利⽤其符号运算⼯具箱可以对该函数进⾏解析推导,得出诸如⾼阶导数、积分、Taylor 幂级数展开等。
利⽤diff(),simple(),taylor()等函数,推导的结果可以直接得到。在⼀些题⽬中,我们⾸先要确定解题⽅向,然后再具体解决。
可以利⽤MATLAB对我们的思考⽅向作⼀些推测,看是否符合题⽬要求。这样,可以节省我们的⼤量计算时间,对正确把握题⽬要求,确定做题⽅向有很好的帮助。
例如在计算某函数的极值时,可以利⽤求导来解决。可是存在的函数本⾝很复杂,求导起来⾮常⿇烦。
利⽤MATLAB的解析推导,问题迎刃⽽解。下⾯的例⼦说明了在MATLAB中求导过程的简单。
例: 求导 >> syms x; >> f=x.^3*sin(x); >> diff(f) ans = 3*x^2*sin(x)+x^3*cos(x) “syms x”定义了⼀个变量x ,diff()是求导函数。具体⽤法可以在帮助中获取。
求⼆阶导数 >> syms x; >> f=x.^3*sin(x); >> diff(f,x,2) ans = 6*x*sin(x)+6*x^2*cos(x)-x^3*sin(x) 3、画图 在⾼等数学的学习中,我们常常⾯临⼀些 有关图形的问题。有些需要我们画出准确的图形,再对其仔细分析;有些图形本⾝是由表达式给出的,常常超出我们的想象,根本不知其所型;还有⼀些可以想象出来,却因绘图能⼒不及难以描绘。
这些难处都影响了我们的正常学习。 ⽤ C 这类语⾔,绘制图形也是⼀个难点。
但使⽤ MATLAB 这类⾼级语⾔,完成这样的⼯作就是⼏个直观语句的事。且得出的图形美观准确、可以将语句毫不变化地移植到另外的机器上,得出完全⼀致的结果,如下所⽰。
例:做出 的图 在MATLAB中键⼊: >> X=-2:0.01:2; >> Y=X.^3-X.^2-X+1; >> plot(X,Y) 得到如下结果: 较复杂的例⼦来⾃MATLAB 的3-D DEMO。 〉〉z=peaks(25); 〉〉mesh(z); ⾮常简单,仅仅⼏个命令就直观的显⽰出来了。
(注意⼤⼩写,MATLAB对⼤⼩写是敏感的) 可以看到MATLAB在画图⽅⾯,功能是⾮常强⼤的。不仅平⾯图可以画,⽴体图也可以画。
还可以依据你的要求画出点状分布、直⽅图等。你能想到的,它基本上都能满⾜你了。
只要你需要这样的⼀个直观表现,MATLAB可以轻⽽易举的帮你实现。 讲了这么多,⼀直都是泛泛⽽谈。
⼀⽅⾯是MATLAB的功能实在太强⼤,难以⼀⼀详尽,再者我也不愿将这篇短⽂变成MATLAB的纸版帮助。(详尽的使⽤说明在MATLAB ⾥都可以到)我只是将我使⽤MATLAB的⼀些体会写在这⾥。
MATLAB是攻读学位的⼤学⽣、硕⼠⽣、博⼠⽣必须掌握的基本⼯具。它正成为对数值线性代数以及其他⼀些⾼等应⽤数学课程进⾏辅助教学的有益⼯具。
尽快的认识和利⽤MATLAB,在数学学习⽅⾯有所帮助。
五、matlab求解微分⽅程组中元素的积分
微分算⼦法适⽤于求⾮齐次微分⽅程的特解,对应的齐次微分⽅程的通解通过特征⽅程(⼆阶或者可以转化成⼆阶)和分离变量法(⼀阶,此时的⾮齐次⽅程常⽤常数变易法解⽐较简单)求解。
2.⽅程转化:令 则,……将微分⽅程改写为的形式,即特解。 有这样的结果: 常系数微分⽅程,直接将求导的阶数改写成D的指数,其常系数不变,即可。
变系数微分⽅程(我只知道欧拉⽅程),先做变换,那么: ,, 带⼊⽅程即可。 3.F(D)的性质: (1)D表⽰微分,1/D表⽰积分; (2)F(D)
g(x)表⽰对g(x)做对应F(D)的微分运算,[1/F(D)] g(x)亦表⽰表⽰对g(x)做对应1/F(D)的微分运算,其中1/F(D)按多项式除法写成假分式的形式; (3),,,; (4)按照(3)的公式带⼊使得分⼦为零时也即此时的k是⽅程的特征根,为了使特解与通解线性⽆关,只要将若分⼦还为零直到使分⼦不为零。
六、matlab微分计算
syms x y
r1=(x-y).^3.*sin(x+2*y)
int(r1,y,-x,x)
第⼆个偏微分的我实在不会,不好意思
第⼆题的答案是:syms x y z ff=sin(x^2*y*z); f1=diff(ff,x,2); f2=diff(f1,y)%微分后的表达式 t1=subs(f2,'x',1); t2=subs(t1,'y',1); t3=subs(t2,'z',3)%计算表达式在给定点的值
运⾏的结果是:
f2 = -4*cos(x^2*y*z)*x^4*z^3*y^2-10*sin(x^2*y*z)*x^2*y*z^2+2*cos(x^2*y*z)*z t3 =
88.2784