MATLAB解方程问题syms n lanmuda=1.55;n1=1.6375696780514445567155543374853;n2=1.6443618413936927969908352393948;n3=1.6375696780514445567155543374853;c1=n2^2/n1^2;c2=n2^2/n3^2;k0=2*pi/lanmuda;r1=sqrt(n.^2-n1^2)*k0;r2=sqrt(n2^2-n.^2)*k0;r3=sqrt(n.^2

来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/23 21:54:03
MATLAB解方程问题symsnlanmuda=1.55;n1=1.6375696780514445567155543374853;n2=1.64436184139369279699083523939

MATLAB解方程问题syms n lanmuda=1.55;n1=1.6375696780514445567155543374853;n2=1.6443618413936927969908352393948;n3=1.6375696780514445567155543374853;c1=n2^2/n1^2;c2=n2^2/n3^2;k0=2*pi/lanmuda;r1=sqrt(n.^2-n1^2)*k0;r2=sqrt(n2^2-n.^2)*k0;r3=sqrt(n.^2
MATLAB解方程问题
syms n
lanmuda=1.55;
n1=1.6375696780514445567155543374853;
n2=1.6443618413936927969908352393948;
n3=1.6375696780514445567155543374853;
c1=n2^2/n1^2;
c2=n2^2/n3^2;
k0=2*pi/lanmuda;
r1=sqrt(n.^2-n1^2)*k0;
r2=sqrt(n2^2-n.^2)*k0;
r3=sqrt(n.^2-n3^2)*k0;
fun=r2.*5-atan(c1.*r1./r2)-atan(c2.*r3./r2)-pi;
solve(fun,n)
为什么解不出来解,但画图显示应该有解.

MATLAB解方程问题syms n lanmuda=1.55;n1=1.6375696780514445567155543374853;n2=1.6443618413936927969908352393948;n3=1.6375696780514445567155543374853;c1=n2^2/n1^2;c2=n2^2/n3^2;k0=2*pi/lanmuda;r1=sqrt(n.^2-n1^2)*k0;r2=sqrt(n2^2-n.^2)*k0;r3=sqrt(n.^2

发现解在+/-1.6附近 因此通过fsolve 来解非线性方程,不能得到其解析解,只能计算其数值解,通过限制其精度,达到自己的要求.

 fsolve('funx',-1.7)即可求得 -1.6376 - 0.0000i

 fsolve('funx',1.5)           1.6376 + 0.0000i

function [fx ] = funx( n )

%FUNX Summary of this function goes here

%   Detailed explanation goes here

lanmuda=1.55;

n1=1.6375696780514445567155543374853;

n2=1.6443618413936927969908352393948;

n3=1.6375696780514445567155543374853;

c1=n2^2/n1^2;

c2=n2^2/n3^2;

k0=2*pi/lanmuda;

r1=sqrt(n.^2-n1^2)*k0;

r2=sqrt(n2^2-n.^2)*k0;

r3=sqrt(n.^2-n3^2)*k0;

fx=r2.*5-atan(c1.*r1./r2)-atan(c2.*r3./r2)-pi;


end

可以:
clear all;clc;
for b=1:20;
a(b)=eval(solve('10+x=b','x'));
end
a =
Columns 1 through 13
-9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 ...

全部展开

可以:
clear all;clc;
for b=1:20;
a(b)=eval(solve('10+x=b','x'));
end
a =
Columns 1 through 13
-9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3
Columns 14 through 20
4 5 6 7 8 9 10
请采纳。

收起

MATLAB解方程问题syms n lanmuda=1.55;n1=1.6375696780514445567155543374853;n2=1.6443618413936927969908352393948;n3=1.6375696780514445567155543374853;c1=n2^2/n1^2;c2=n2^2/n3^2;k0=2*pi/lanmuda;r1=sqrt(n.^2-n1^2)*k0;r2=sqrt(n2^2-n.^2)*k0;r3=sqrt(n.^2 matlab解非线性方程问题 两个Matlab问题1.2.第二个若用syms 会出错, matlab含变上限积分方程,遇到了很奇怪的问题,要求解的方程如图:要求解alpha;我写出的matlab程序如下:t=0.7256;syms a x;f=int(x/(exp(x)-1),0,a);f1=1+4/a*(f/a-1)-t;answer=solve('f1',a);matlab告诉我说没有显式 MATLAB 中syms matlab求解直线与椭圆交点方程出的问题syms tD=input('输入射线源到旋转轴距离 D ');d1=input('输入任一点到中心探测器的距离 d1 ');d2=input('输入任一点到z轴的距离d2 ');h=input('输入射线源与y轴夹 matlab解方程时返回[ empty sym ]f=3.125;w=8.2;syms omega;gp=(((100*(omega-5).*f)./(((omega-5).^2-w^2).^2+(2*(omega-5).*f).^2))+0.55)/1.6;a=(w^2-2*f^2)/2;b=sqrt(w^4+4*f^4-4*f^2)/2;m=sqrt(a+b);n=sqrt(b-a);c=125*f/(16*m*n*(n^2+m^2));syms T;d1=-n*(m 关于MATLAB sym和syms的区别问题小弟初学,总搞不清楚什么时候用syms什么时候用sym, matlab 解方程在解方程的时候用到了syms,然后在求解的时候显示错误了,P.S.例如以下程序syms x;y=x+1;solve('y=0','x') matlab解方程的一个小问题 >> syms x >> k=5 k = 5 >> y='x+k=0' y = x+k=0 >> solve(y) ans =-k>> syms x >> k=5 k = 5 >> y='x+k=0' y = x+k=0>> solve(y) ans =-k 答案求得不是-5,而是-k,要怎么将得到的变成-5呢,解的方程里面一 matlab自定义函数问题请问matlab自定义函数的时候syms x;y=x^2-1 与 y=inline('x^2-1') 以及y='x^2-1'有什么区别?应该它们有什么共同点,在解方程的时候应该怎么引用它们?没分了 matlab中syms什么意思? MATLAB用for循环解个方程syms n i qH=1.8;lanmuda=1.4;n1=1.55;n2=1.67;n3=1.50;k0=2*pi/lanmuda;for q=0:2 i=q; Si=solve(sqrt(n2*n2-n^2)*k0*H-atan(sqrt(n^2-n1*n1)/sqrt(n2*n2-n^2))-atan(sqrt(n^2-n3*n3)/sqrt(n2*n2-n^2))-q*pi==0,n); end主要是 matlab 如何用syms定义整数变量如果定义正数n可以这样定义:syms n positive;如果定义正整数该如何定义? Matlab程序,请问错误在哪?function s=lag(x,y,t) %采用符号推导,这样可以给出插值具体公式 syms p; %读取x向量维数 n=length(x); s=0; for(k=1:n) la=y(k); %构造基函数 for(j=1:k- 简单的matlab级数求和问题.syms x n;symsum((-1)^n*x^n/(n^2-n)^(1/2),n,2,Inf)得到的结果是ans=sum((-1)^n*x^n/(n^2-n)^(1/2),n=2...Inf)结果怎么会是这样呢?这不相当于没算出来么?难道这个级数本身就无法求和? matlab 编程 syms V1;[V1]=solve('60.*9550./12000.*0.9./0.2752=1540.*9.8.*0.015+0.5.*1.2258.*2.142.*0.3.*V1.^2',V1); display(V1);它说我解方程那一行错误“Error in ==> test1 at 29[V1]=solve('60.*9550./n.*0.9./0.2752=1540.*9.8.*0.015+0.5.*1. matlab符号解问题我们在解不定方程的时候,怎么用指定的变量来表示其他变量的解?比如syms a b c d;最后解的结果默认为a b c都用d表示的,怎么改为b,c,d用a来表示啊?