如何用matlab进行多元函数偏导数计算
创新互联是专业的江西网站建设公司,江西接单;提供网站建设、网站制作,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行江西网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
可以调用 diff 函数求导。
举例说明:
先定义符号 x、y 以及符号二元函数表达式 z,然后调用 diff 函数求偏导,代码如下:
clc;clear;
syms x y
z=x^2+y^2+exp(x*y);
z_x=diff(z,x,1)
z_y=diff(z,y,1)
z_x2=diff(z,x,2)
z_y2=diff(z,y,2)
z_xy=diff(z,x,y)
结果如下:
z_x =
2*x + y*exp(x*y)
z_y =
2*y + x*exp(x*y)
z_x2 =
y^2*exp(x*y) + 2
z_y2 =
x^2*exp(x*y) + 2
z_xy =
exp(x*y) + x*y*exp(x*y)
把
for i = 2:100
a(i)=1; %a2=a3=a4=...=a_num=1
end
改成
for i = 2:100
eval(['a',num2str(i) '=1;'])
end
你原来的写法是把数组a的第2到第100个元素(即a(2)-a(100))赋值为1,而符号变量a2-a100仍然存在。
类型的异常在System.Data.dll中发生,但未在用户代码中进行处理,是设置错误造成的,解决方法如下:
1、首先,需要确保IIS是否启用32位应用程序,因为OLEDB不支持64位。键盘上Win+R打开运行;输入"inetmgr"打开IIS。
2、点击IIS中的应用程序池,并选择某一程序池后。
3、点击右边的“高级设置”选项。
4、在IIS高级设置对话框中找到“启用32位应用程序”选项并设置为true。
5、设置完成后,点击窗口下方的确定,问题就解决了。
matlab里一阶导数用diff函数实现,如:
syms t
diff(sin(t^2))
ans =
2*cos(t^2)*t
第二步在我们的电脑上打开matlab,在命令行窗口中输入syms x,f(x)=sin(x)+x^2 ,diff(f(x)对f(x)函数进行求导
第三步按回车键,可以看见求导的结果是2*x+cos(x)
第四步在命令行窗口中输入diff(f(x),3),按回车键求f(x)函数的3阶导数
第五步也可以求偏导,输入diff(f(x),x)求对
可以调用 diff 函数求导。
举例说明:
先定义符号 x、y 以及符号二元函数表达式 z,然后调用 diff 函数求偏导,代码如下:
clc;clear;
syms x y
z=x^2+y^2+exp(x*y);
z_x=diff(z,x,1)
z_y=diff(z,y,1)
z_x2=diff(z,x,2)
z_y2=diff(z,y,2)
z_xy=diff(z,x,y)
结果如下:
z_x =
2*x + y*exp(x*y)
z_y =
2*y + x*exp(x*y)
z_x2 =
y^2*exp(x*y) + 2
z_y2 =
x^2*exp(x*y) + 2
z_xy =
exp(x*y) + x*y*exp(x*y)
图中调用了5次diff函数,分别计算了 z 对 x 的一阶偏导,z 对 y 的一阶偏导,z 对 x 的二阶偏导,z 对 y 的二阶偏导,以及 z 对 x,y 都求一次偏导。
例子中所用的调用格式为: diff(f,var,n)
f 为符号表达式,也可以是符号函数(这个数据类型低版本的matlab没有)。n 为求导次数,缺省为1。var 为求导的符号变量,可以缺省(matlab会根据表达式自己选择一个),但不建议缺省,除非表达式只含有一个符号变量。
此外,matlab还允许 diff(f,n,var)与 diff(S,v1,v2,...,vn)的调用形式。
diff(f,v1,v2,...,vn) 会把表达式 f 对变量 v1,v2 等 n 个变量都求一次偏导,得到 f 的 n 阶偏导。
题名:科学与工程数值算法-Java版
作者:丁军, 杨丽丽
出版社:清华大学出版社,2003
这本书挺好的,是去年我学《数值分析》的法宝。上面有微分方程的数值算法代码,推荐参考一下