本帖最后由 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求解一元函数,再求全微分的错误,表达式复杂不会........相关推荐

  1. matlab 圆角,rectangle函数MATLAB matlab中rectangle画圆角矩形

    MATLAB如何画长方形,怎么用rectangle函数 rectangle函数用于绘制矩形图形.例如>>rectangle('Position',[0 0 2 4],'Curvature' ...

  2. 极大似然函数求解_关于极大似然估计的学习(附Matlab中mle函数的求解)

    冒泡~是新的一周辣~温故而知新一下极大似然估计(真是很不容易了) 极大似然估计的基本思想 什么是极大似然?官方上的较清楚的解释是:利用已知的样本的结果,在使用某个模型的基础上,反推最有可能导致这样结果 ...

  3. matlab表示520函数,MatLab中ln函数怎么表示呢

    公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解. 话题:MatLab中ln函数怎么表示呢?回答:lnx表示成log(x) 而lgx表示成log10(x)话题:怎样用MATLAB语言表示ln ...

  4. matlab if嵌套函数,MATLAB嵌套函数的应用

    嵌套函数在求解积分上限中的应用 例1如下述积分表达式,已知a.e和l,如何求得β0? 本例关于β的积分结果不能解析表达,需要数值积分来做,同时还要求一个非线性方程.代码如下: function sol ...

  5. matlab中fval函数,Matlab中linprog函数的用法总结

    Matlab中 linprog函数的用法总结 1.简介 在matlab中,linprog函数可以求解线性规划问题,用于寻找目标函数的最小值 matlab中,规划模型的标注写法如下 $$ min\ f, ...

  6. matlab多参数函数,Matlab多参数函数

    问题描述: Matlab多参数函数 小弟想用三个变量p.q.s拟合出一条关于y的曲线,已知p.q.s各自关于y的关系(都是二次函数),该如何实现呢? 大侠,好人做到底,送佛送上天,现在我告诉您y=x( ...

  7. 用matlab定义位移函数,matlab 定义函数(Matlab怎么调用函数 自定义函数使用方法)...

    matlab 定义函数(Matlab怎么调用函数 自定义函数使用方法),哪吒游戏网给大家带来详细的matlab 定义函数(Matlab怎么调用函数 自定义函数使用方法)介绍,大家可以阅读一下,希望这篇 ...

  8. matlab的数学函数,matlab中常见数学函数的使用

    matlab中常见数学函数的使用 MATLAB 基本知识 Matlab 的内部常数 pi 圆周率 exp(1) 自然对数的底数 e i 或 j 虚数单位 Inf 或 inf 无穷大 Matlab 的常 ...

  9. matlab中response函数,matlab函数的种类

    突然发现matlab的函数还是很有讲究的,以前只是用,很少注意这个问题,现在看到了稍微总结一下吧. 在matlab帮助中搜索Types of Functions,可以看到matlab常用的函数种类: ...

  10. matlab 随机整数函数,MATLAB的简单随机生成函数

    关于MATLAB的随机函数: MATLAB含有一些生成随机数的函数: 一.rand ():生成(0,1)区间上均匀分布的随机变量 rand(5,1) %生成随机数排列的列向量. rand(5)%生成5 ...

最新文章

  1. c++ 打开添加删除程序_Docker 添加容器到一个网络
  2. Linux无法启动(一)
  3. 为什么在中国“公有云”落地那么难?
  4. python3.8 pyinstaller3.5安装出错_Pyinstaller 无法正常打包脚本 Python 3.5
  5. 什么是Java内存模型中的happens-before
  6. 计算两个日期相差的小时差
  7. svn 备份和还原项目
  8. hibernate 根据用户名获取用户对象_Mybatis 和 Hibernate 持久层框架之间的区别是啥?...
  9. 微软公告:Visual Basic 6 完全兼容 Windows 8 的整个产品周期
  10. 打开Hololens自动相机,和live stream
  11. 超级计算机预测未来,超级计算机预测未来
  12. c语言 北京时间转换utc时间_UTC时间与北京时间相互转换
  13. 斐讯N1盒子刷Armbian安装jdk做Java服务器
  14. Python简单词云的制作
  15. Axure谷歌浏览器扩展程序下载及安装方法(免翻墙)
  16. matplotlib常用绘图风格
  17. 输入验证码,一直报错验证码错误(内网多服务器)
  18. SAAS(软件即服务) 离我们还有多远?
  19. 吃饭只吃5分饱,生活才会很美好
  20. [fyne] build constraints exclude all Go files in

热门文章

  1. 微信小游戏上传设置成体验版或者提交审核
  2. 视频会议十大开源项目排行
  3. matlab画站点降雨分布,matlab 怎样做整个中国各个气象站点上的温度变化趋势
  4. 中华传统文化网页作业报告
  5. 一个有趣的二维码生成库Qart
  6. 使用Python获取100以内的质数
  7. 线路规划实现用java_北京地铁出行线路规划系统项目总结(Java+Flask+Vue实现)
  8. oeasy教您玩转linux-010110内容回顾
  9. linux dd winpe,winpe/linux多重启动
  10. 计算机信息检索技术实质上是逻辑运算,在信息检索的实际过程中,如需要扩大检索范围时,如何调整检索策略...