Summation function with two variables concentration profile

10 ビュー (過去 30 日間)
mpz
mpz 2022 年 4 月 1 日
コメント済み: Walter Roberson 2022 年 4 月 2 日
Hi,
Need some help plotting the attached equation For some reason my plot is not oming out as needed. For example, I want to be able to plot C vs X for this equation. For some reason my methodology doesn't com out right
D=1.79e-5;
C1=0.79;
C0=0;
x=linspace(-60,60,1000);
n=linspace(0,.020,1000);
t=linspace(0,1,1000);
xs=linspace(0,120,100);
ax1=(4./pi()).*(((-1).^n)./(2.*n+1));
bx1=exp(-((D*((2*n+1).^2)*(pi().^2).*t)./(4.*l.^2)));
Unrecognized function or variable 'l'.
cx1=cos(((2.*n+1).*pi().*x)./(2.*l));
CC1=C0+(C1-C0).*(1-ax1.*bx1.*cx1);
figure(1)
plot(xs,CC1,'-k')

採用された回答

Walter Roberson
Walter Roberson 2022 年 4 月 2 日
D=1.79e-5;
C1=0.79;
C0=0;
l = 120/2;
x=linspace(-l,l,1000);
n=linspace(0,.020,1000).';
t=linspace(0,1,1000).';
ax1=(4./pi()).*(((-1).^n)./(2.*n+1));
bx1=exp(-((D*((2*n+1).^2)*(pi().^2).*t)./(4.*l.^2)));
cx1=cos(((2.*n+1).*pi().*x)./(2.*l));
CC1=C0+(C1-C0).*(1-ax1.*bx1.*cx1);
figure(1)
whos
Name Size Bytes Class Attributes C0 1x1 8 double C1 1x1 8 double CC1 1000x1000 16000000 double complex D 1x1 8 double ax1 1000x1 16000 double complex bx1 1000x1 8000 double cx1 1000x1000 8000000 double l 1x1 8 double n 1000x1 8000 double t 1000x1 8000 double x 1x1000 8000 double
figure
surf(x, t, real(CC1), 'edgecolor', 'none')
title('real CC1')
figure
surf(x, t, imag(CC1), 'edgecolor', 'none')
title('imag CC1')
  9 件のコメント
Walter Roberson
Walter Roberson 2022 年 4 月 2 日
You can evaluate over a range of values of n and sum() afterwards.
But what precision do you need? Although the calculation does appear to converge (perhaps I should have checked more carefully) the third digit is still changing when you take a million terms -- the terms might be small but they add up in bulk.
Walter Roberson
Walter Roberson 2022 年 4 月 2 日
Do you have a fix for that?
No, I do not have a fix for that. I do not think you are calculating the correct thing.
For a calculation like this, every independent variable that is being varied over should have its own axes. x should be a different axes than t which should be a different axes than n. You would typically calculate for a finite number of n and then sum() over that axes, giving you a result that has x and t and possibly other axes. Once you have the multi-dimensional output you would try to summarize it into plots.
Because your x and t are different continuous independent axes, your plot should not be trying to drop t on the output.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeStartup and Shutdown についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by