matlab求解全微分函数,Matlab求解一元函数,再求全微分的错误,表达式复杂不会........
本帖最后由 eleanorexu 于 2013-3-28 20:49 编辑
我想求解的函数是:deltaL=n^2*h/sqrt(n^2-(sin(theta1))^2)-n^2*h/sqrt(n^2-(sin(theta2))^2
其中,deltaL,h,theta1,theta2都已知(都可测量),想求n是多少,不知如何解。。。
此外最重要的是,还想求n对deltaL,h,theta1,theta2每一项的偏微分是多少,从而计算不确定度dn。
我的程序是:
********************************************************************************************
clear
clc
syms n deltaL theta1 theta2 h; %创建符号变量
n_exp = solve(deltaL-n^2*h/sqrt(n^2-(sin(theta1))^2)+n^2*h/sqrt(n^2-(sin(theta2))^2),n); %计算出方程的根
%下面对每一个变量求偏导
d_h = diff(n_exp,h);
d_deltaL = diff(n_exp,deltaL);
d_theta1= diff(n_exp,theta1);
d_theta2= diff(n_exp,theta2);
%利用得到的表达式带入数值计算
%后缀为num的为真实数值
h_num = 0.01; %h(厚度)10mm
theta1_num = 57/180*pi; %光线和玻璃夹角初始值57度
theta2_num = 58/180*pi;%转了1度
deltaL_num = 9.322878675087701e-05; %相应的光程变化9.322878675087701e-05m
%以下代表不确定度
dh = 1*10^-6;
ddeltaL=79*10^-9;
dtheta1 = 1/648000*pi;
dtheta2 = 1/648000*pi;
%在此检查一下n,看看靠谱的
n_num = subs(n_exp, {h,theta1,theta2,deltaL}, {h_num,theta1_num,theta2_num,deltaL_num});
%把偏导的数值算出来
d_h_num = subs(d_h, {h,theta1,theta2,deltaL}, {h_num,theta1_num,theta2_num,deltaL_num});
d_deltaL_num = subs(d_deltaL, {h,theta1,theta2,deltaL}, {h_num,theta1_num,theta2_num,deltaL_num});
d_theta1_num = subs(d_theta1, {h,theta1,theta2,deltaL}, {h_num,theta1_num,theta2_num,deltaL_num});
d_theta2_num = subs(d_theta2, {h,theta1,theta2,deltaL}, {h_num,theta1_num,theta2_num,deltaL_num});
%将偏导合起来得到不确定度数值
d_n_num =sqrt( (d_h_num .* dh).^2 + (d_deltaL_num .* ddeltaL).^2 + (d_theta1_num .* dtheta1).^2 + (d_theta2_num .* dtheta2).^2);
********************************************************************************************
但matlab没有给我返回一个具体的数字,命令窗口显示的是:
Warning: The solutions are parametrized by the symbols:
z1 = RootOf(z^5 + (z^4*(- h^2*sin(theta1)^2 + h^2*sin(theta2)^2 + deltaL^2))/(2*deltaL*h) -
(z^3*(2*deltaL*h*sin(theta1)^2 - 4*deltaL*h*sin(theta2)^2))/(2*deltaL*h) - (z^2*(deltaL^2*sin(theta1)^2 -
deltaL^2*sin(theta2)^2 - 2*h^2*sin(theta2)^4 + 2*h^2*sin(theta1)^2*sin(theta2)^2))/(2*deltaL*h) +
(z*(2*deltaL*h*sin(theta2)^4 - 2*deltaL*h*sin(theta1)^2*sin(theta2)^2))/(2*deltaL*h) + (h^2*sin(theta2)^6 -
h^2*sin(theta1)^2*sin(theta2)^4)/(2*deltaL*h), z) minus RootOf(2*deltaL*h*z^4 - h^2*z^3*sin(theta1)^2 +
h^2*z^3*sin(theta2)^2 + deltaL^2*z^3 + 3*deltaL*h*z^2*sin(theta2)^2 - 2*deltaL*h*z^2*sin(theta1)^2 -
h^2*z*sin(theta1)^2*sin(theta2)^2 - deltaL^2*z*sin(theta1)^2 + h^2*z*sin(theta2)^4 + deltaL^2*z*sin(theta2)^2 -
deltaL*h*sin(theta1)^2*sin(theta2)^2 + deltaL*h*sin(theta2)^4, z)
> In solve at 180
In Uncertainty at 5
******************************************************************************************
请问是因为所求的表达式太复杂了吗?theta1和theta2可以只差1秒,也就是说sin(theta1)和sin(theta2)可以相差很小,可以怎样化简再用matlab计算?
还是可以用原始公式算但有更好的计算方法?
谢谢了!!!
原始公式如下: 图片贴不上,给个附件吧。。。
2013-3-28 20:49 上传
点击文件名下载附件
3.49 KB, 下载次数: 1
包含原始公式
matlab求解全微分函数,Matlab求解一元函数,再求全微分的错误,表达式复杂不会........相关推荐
- matlab 圆角,rectangle函数MATLAB matlab中rectangle画圆角矩形
MATLAB如何画长方形,怎么用rectangle函数 rectangle函数用于绘制矩形图形.例如>>rectangle('Position',[0 0 2 4],'Curvature' ...
- 极大似然函数求解_关于极大似然估计的学习(附Matlab中mle函数的求解)
冒泡~是新的一周辣~温故而知新一下极大似然估计(真是很不容易了) 极大似然估计的基本思想 什么是极大似然?官方上的较清楚的解释是:利用已知的样本的结果,在使用某个模型的基础上,反推最有可能导致这样结果 ...
- matlab表示520函数,MatLab中ln函数怎么表示呢
公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解. 话题:MatLab中ln函数怎么表示呢?回答:lnx表示成log(x) 而lgx表示成log10(x)话题:怎样用MATLAB语言表示ln ...
- matlab if嵌套函数,MATLAB嵌套函数的应用
嵌套函数在求解积分上限中的应用 例1如下述积分表达式,已知a.e和l,如何求得β0? 本例关于β的积分结果不能解析表达,需要数值积分来做,同时还要求一个非线性方程.代码如下: function sol ...
- matlab中fval函数,Matlab中linprog函数的用法总结
Matlab中 linprog函数的用法总结 1.简介 在matlab中,linprog函数可以求解线性规划问题,用于寻找目标函数的最小值 matlab中,规划模型的标注写法如下 $$ min\ f, ...
- matlab多参数函数,Matlab多参数函数
问题描述: Matlab多参数函数 小弟想用三个变量p.q.s拟合出一条关于y的曲线,已知p.q.s各自关于y的关系(都是二次函数),该如何实现呢? 大侠,好人做到底,送佛送上天,现在我告诉您y=x( ...
- 用matlab定义位移函数,matlab 定义函数(Matlab怎么调用函数 自定义函数使用方法)...
matlab 定义函数(Matlab怎么调用函数 自定义函数使用方法),哪吒游戏网给大家带来详细的matlab 定义函数(Matlab怎么调用函数 自定义函数使用方法)介绍,大家可以阅读一下,希望这篇 ...
- matlab的数学函数,matlab中常见数学函数的使用
matlab中常见数学函数的使用 MATLAB 基本知识 Matlab 的内部常数 pi 圆周率 exp(1) 自然对数的底数 e i 或 j 虚数单位 Inf 或 inf 无穷大 Matlab 的常 ...
- matlab中response函数,matlab函数的种类
突然发现matlab的函数还是很有讲究的,以前只是用,很少注意这个问题,现在看到了稍微总结一下吧. 在matlab帮助中搜索Types of Functions,可以看到matlab常用的函数种类: ...
- matlab 随机整数函数,MATLAB的简单随机生成函数
关于MATLAB的随机函数: MATLAB含有一些生成随机数的函数: 一.rand ():生成(0,1)区间上均匀分布的随机变量 rand(5,1) %生成随机数排列的列向量. rand(5)%生成5 ...
最新文章
- c++ 打开添加删除程序_Docker 添加容器到一个网络
- Linux无法启动(一)
- 为什么在中国“公有云”落地那么难?
- python3.8 pyinstaller3.5安装出错_Pyinstaller 无法正常打包脚本 Python 3.5
- 什么是Java内存模型中的happens-before
- 计算两个日期相差的小时差
- svn 备份和还原项目
- hibernate 根据用户名获取用户对象_Mybatis 和 Hibernate 持久层框架之间的区别是啥?...
- 微软公告:Visual Basic 6 完全兼容 Windows 8 的整个产品周期
- 打开Hololens自动相机,和live stream
- 超级计算机预测未来,超级计算机预测未来
- c语言 北京时间转换utc时间_UTC时间与北京时间相互转换
- 斐讯N1盒子刷Armbian安装jdk做Java服务器
- Python简单词云的制作
- Axure谷歌浏览器扩展程序下载及安装方法(免翻墙)
- matplotlib常用绘图风格
- 输入验证码,一直报错验证码错误(内网多服务器)
- SAAS(软件即服务) 离我们还有多远?
- 吃饭只吃5分饱,生活才会很美好
- [fyne] build constraints exclude all Go files in
热门文章
- 微信小游戏上传设置成体验版或者提交审核
- 视频会议十大开源项目排行
- matlab画站点降雨分布,matlab 怎样做整个中国各个气象站点上的温度变化趋势
- 中华传统文化网页作业报告
- 一个有趣的二维码生成库Qart
- 使用Python获取100以内的质数
- 线路规划实现用java_北京地铁出行线路规划系统项目总结(Java+Flask+Vue实现)
- oeasy教您玩转linux-010110内容回顾
- linux dd winpe,winpe/linux多重启动
- 计算机信息检索技术实质上是逻辑运算,在信息检索的实际过程中,如需要扩大检索范围时,如何调整检索策略...